《Go 语言第一课》课程学习笔记(二)

这篇具有很好参考价值的文章主要介绍了《Go 语言第一课》课程学习笔记(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

初窥门径:一个 Go 程序的结构是怎样的?

创建“hello,world”示例程序

  • 在 Go 语言中编写一个可以打印出“hello,world”的示例程序,我们只需要简单两步,一是创建文件夹,二是开始编写和运行。
  • 通常来说,Go 不会限制我们存储代码的位置,建议创建一个可以集合所有项目的根文件夹(比如:~/goprojects),然后将所有的项目都放在里面。
  • 对于 Linux 系统、macOS 系统,以及 Windows 系统的 PowerShell 终端来说,用下面这个命令就可以建立 hello world 文件夹了:mkdir ~/goprojects mkdir helloworld

编写并运行第一个 Go 程序

  • 首先,我们需要创建一个名为 main.go 的源文件。
    • Go 源文件总是用全小写字母形式的短小单词命名,并且以 .go 扩展名结尾。
    • 如果要在源文件的名字中使用多个单词,我们通常直接是将多个单词连接起来作为源文件名,而不是使用其他分隔符,比如下划线。
    • 我们尽量不要用两个以上的单词组合作为文件名,否则就很难分辨了。
  • 现在,你可以打开刚刚创建的 main.go 文件,键入下面这些代码:
    package main
    
    import "fmt"
    
    func main()  {
    	fmt.Println("hello, world")
    }
    

“hello,world”示例程序的结构

  • package main 这一行代码定义了 Go 中的一个包 package。
    • 包是 Go 语言的基本组成单元,通常使用单个的小写单词命名,一个 Go 程序本质上就是一组包的集合。
    • 所有 Go 代码都有自己隶属的包,在这里我们的“hello,world”示例的所有代码都在一个名为 main 的包中。
    • main 包在 Go 中是一个特殊的包,整个 Go 程序中仅允许存在一个名为 main 的包。
  • main 包中的主要代码是一个名为 main 的函数:
    func main() {
    	fmt.Println("hello, world")
    }
    
    • 当你运行一个可执行的 Go 程序的时候,所有的代码都会从这个入口函数开始运行。
    • Go 语言内置了一套 Go 社区约定俗称的代码风格,并随安装包提供了一个名为 Gofmt 的工具,这个工具可以帮助你将代码自动格式化为约定的风格。
    • 因此,作为 Go 开发人员,请在提交你的代码前使用 Gofmt 格式化你的 Go 源码。
  • main 函数体中之所以可以调用 fmt 包的 Println 函数,还有最后一个原因,那就是
    Println 函数名的首字母是大写的。在 Go 语言中,只有首字母为大写的标识符才是导出的(Exported),才能对包外的代码可见;如果首字母是小写的,那么就说明这个标识符仅限于在声明它的包内可见。

Go 语言中程序是怎么编译的?

  • Go 是一种编译型语言,这意味着只有你编译完 Go 程序之后,才可以将生成的可执行文件交付于其他人,并运行在没有安装 Go 的环境中。
  • Go module 构建模式是在 Go 1.11 版本正式引入的,为的是彻底解决 Go 项目复杂版本依赖的问题,在 Go 1.16 版本中,Go module 已经成为了 Go 默认的包依赖管理机制和 Go 源码构建机制。
  • Go Module 的核心是一个名为 go.mod 的文件,在这个文件中存储了这个 module 对第三方依赖的全部信息。
  • 其实,一个 module 就是一个包的集合,这些包和 module 一起打版本、发布和分发。go.mod 所在的目录被我们称为它声明的 module 的根目录。除了按提示手动添加外,我们也可以使用 go mod tidy 命令,让 Go 工具自动添加相关包依赖。

文章来源地址https://www.toymoban.com/news/detail-653072.html

到了这里,关于《Go 语言第一课》课程学习笔记(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《Go 语言第一课》课程学习笔记(九)

    Go 语言在常量方面的创新包括下面这几点: 支持无类型常量; 支持隐式自动转型; 可用于实现枚举。 Go 语言的常量是一种在源码编译期间被创建的语法元素。这是在说这个元素的值可以像变量那样被初始化,但它的初始化表达式必须是在编译期间可以求出值来的。 Go 常量

    2024年02月12日
    浏览(30)
  • 《Go 语言第一课》课程学习笔记(二)

    在 Go 语言中编写一个可以打印出“hello,world”的示例程序,我们只需要简单两步,一是创建文件夹,二是开始编写和运行。 通常来说,Go 不会限制我们存储代码的位置,建议创建一个可以集合所有项目的根文件夹(比如:~/goprojects),然后将所有的项目都放在里面。 对于

    2024年02月12日
    浏览(30)
  • C语言入门课程学习笔记-6

    本文学习自狄泰软件学院 唐佐林老师的 C语言入门课程,图片全部来源于课程PPT,仅用于个人学习记录 D,越界 C D 20 2 0 -1 A wrong 赋值越界 B str2[4]初始化为0元素 A wrong C AD strlen(s) ij j– 10 3 abc

    2024年04月28日
    浏览(24)
  • [Go]-Go语言第一课

    1-1 Go语言特点 1-2 Go语言优势与劣势 1-3 Linux下的安装 1-4 Linux下的环境变量 2-1 Go语言-工作区和GOPATH 2-2 Go语言-源码文件的分类和含义 2-34 Go语言-代码包的相关知识 3-1 go run 命令简介 goc2p项目地址:https://github.com/hyper-carrot/goc2p 用go编写了ds和pds,用以打印目录结构 3-4 go run 常用标

    2024年02月09日
    浏览(28)
  • Ubuntu学习---跟着绍发学linux课程记录(第一部分)

    Ubuntu的学习过程的笔记分为4个部分来记录: 1、Ubuntu学习—跟着绍发学linux课程记录(第1部分) 2、Ubuntu学习—跟着绍发学linux课程记录(第2部分) 3、Ubuntu学习—跟着绍发学linux课程记录(第3部分) 4、Ubuntu学习—跟着绍发学linux课程记录(第4部分) 视频链接: Ubuntu 21.04乌班

    2024年02月10日
    浏览(23)
  • 尚硅谷webpack课程学习笔记

    为什么需要使用打包工具? 开发时使用的框架、es6 语法 、less 等浏览器无法识别。 需要经过编译成浏览器能识别的css、js才可以运行。 打包工具可以帮我们编译,还可以做代码压缩、兼容处理、性能优化。 常见的打包工具有什么? vite、webpack、glup、grunt webapck最基本的使用

    2024年02月07日
    浏览(37)
  • 【学习笔记】黑马程序员Java课程学习笔记(更新至第12章---集合)

    Java语言是美国Sun公司(Stanford University Network)在1995年推出的计算机语言, 2009年Oracle甲骨文公司收购Sun公司。Java之父:詹姆斯·高斯林(James Gosling)。 Java可以在任意操作系统上运行,Windows、Mac、Linux。我们只需要在运行Java应用程序的操作系统上,安装一个与操作系统对应

    2024年02月07日
    浏览(35)
  • 《MySQL 实战 45 讲》课程学习笔记(四)

    索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。 哈希表 哈希表是一种以键 - 值(key-value)存储数据的结构,我们只要输入待查找的值即 key,就可以找到其对应的值即 Value。 哈希的思路很简单,把值放在数组里,用一个哈希函数把 key 换算成一个确定的位

    2024年02月14日
    浏览(32)
  • 《Kubernetes入门实战课》课程学习笔记(一)

    现在 Kubernetes 已经没有了实际意义上的竞争对手,它的地位就如同 Linux 一样,成为了事实上的云原生操作系统,是构建现代应用的基石。 现代应用是什么? 是微服务,是服务网格,这些统统要围绕着容器来开发、部署和运行。 使用容器就必然要用到容器编排技术,在现在只

    2024年02月17日
    浏览(59)
  • 《kafka 核心技术与实战》课程学习笔记(八)

    Kafka 只对“已提交”的消息(committed message)做有限度的持久化保证。 第一个核心要素是“已提交的消息”。 当 Kafka 的若干个 Broker 成功地接收到一条消息并写入到日志文件后,它们会告诉生产者程序这条消息已成功提交。 可以选择只要有一个 Broker 成功保存该消息就算是已

    2024年02月16日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包