程序设计的一个惯例,是开始使用某种语言或工具编写第一个程序时,显示一个“hello world"(世界您好),就像一个婴儿来到这个世界,向这个世界的第一声问候一样。
使用VSCODE编程,由于它是一个通用的程序工具(IDE:集成开发环境),所以经常是里外结合的工作方式,有的工作是VSCODE完成的,还有是插件完成的,这两个都不能完成,就得通过命令行完成,power shell,这在VSCODE中叫终端。
在此这前,就是没有打开VSCODE之前,要先准备一个专门用来存放编写代码所需各种文件的文件夹。
使用资源管理器,建立一个文件夹。选择这个新建的文件夹,在地址栏中键入cmd,就打开发命令行窗口,再键入code .后回车,VSCODE会打开这个文件夹做为项目目录,就是我们要编程的地方了。
在终端栏中键入:
go mode init [模块名]
如下:
PS D:\gott> go mod init gott
go: creating new go.mod: module gott
PS D:\gott>
这时生成了一个go.mod的文件,这个文件是干什么的呢?
go.mod文件是Go语言模块的管理文件。它用于定义和管理项目的依赖关系和版本。在Go语言中,模块是一个由一组相关的Go包构成的集合,作为一个单元进行版本控制和分发。
go.mod文件包含以下信息:
当你在项目中引入新的包或者修改依赖版本时,go.mod文件会被自动更新。通过go.mod文件,Go语言的构建工具可以自动下载和管理项目所需的依赖包。这种方式使得依赖管理更加简单和可靠,保证了项目的一致性和可重复性。
这里又引入了一个Go 语言模块管理的概念:初学者不理解也没有关系,后面内容涉及到了,自然就理解了。
Go语言使用Go Module来进行模块管理。Go Module是Go语言自1.11版本开始引入的官方包管理工具。使用Go Module进行模块管理的步骤如下:
go mod init <module-name>
module-name
是你的项目的模块名称,例如github.com/your-username/your-project
。go get <package-name>
<package-name>
是你要引入的依赖包的名称。go.mod
文件中。go get -u <package-name>
go mod tidy
以上是使用Go Module进行模块管理的基本步骤,更多详细的操作和配置可以参考Go语言官方文档中关于Go Module的说明。
在VSCODE左侧的资源管理器中,选定根目录,点击旁边的新建文件按钮。
新建一个文件,命名为main.go。系统会自动打开这个文件,此时文件内容为空。
在文件中输入下列代码:
package main
import "fmt"
func main() {
/* 这是我的第一个简单的程序 */
fmt.Println("Hello, World!")
}
编程屏幕可以使用右键菜单完成某些操作。
执行这个代码。在下面的输出栏内显示下面结果:
[Running] go run "d:\gott\main.go"
Hello, World!
[Done] exited with code=0 in 1.008 seconds
也可以在终端输入命令:
PS D:\gott> go run main.go
Hello, World!
PS D:\gott>
显示的hello world就是这个程序的运行结果。
从上例也可以看到 Go 语言最简单程序的结构。
包声明
引入包
函数
变量
语句 & 表达式
注释
第一行代码 package main 定义了包名。你必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。
下一行 import “fmt” 告诉 Go 编译器这个程序需要使用 fmt 包(的函数,或其他元素),fmt 包实现了格式化 IO(输入/输出)的函数。
下一行 func main() 是程序开始执行的函数。main 函数是每一个可执行程序所必须包含的,一般来说都是在启动后第一个执行的函数(如果有 init() 函数则会先执行该函数)。
下一行 /…/ 是注释,在程序执行时将被忽略。单行注释是最常见的注释形式,你可以在任何地方使用以 // 开头的单行注释。多行注释也叫块注释,均已以 /* 开头,并以 */ 结尾,且不可以嵌套使用,多行注释一般用于包的文档描述或注释成块的代码片段。
下一行 fmt.Println(…) 可以将字符串输出到控制台,并在最后自动增加换行字符 \n。
使用 fmt.Print(“hello, world\n”) 可以得到相同的结果。
需要注意的是 { 不能单独放在一行。