编程笔记 GOLANG基础 005 第一个程序:hello world 使用vscode

简介: 编程笔记 GOLANG基础 005 第一个程序:hello world 使用vscode

开始在VSCODE环境中编程go语言代码啦。

程序设计的一个惯例,是开始使用某种语言或工具编写第一个程序时,显示一个“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文件包含以下信息:

  1. 模块的名称:用于唯一标识模块的名称,通常是一个URL或者代码仓库的地址。
  2. 模块的版本:指定模块的当前版本以及各个依赖模块的版本。
  3. 依赖关系:列出了当前模块所依赖的其他模块及其版本要求。

当你在项目中引入新的包或者修改依赖版本时,go.mod文件会被自动更新。通过go.mod文件,Go语言的构建工具可以自动下载和管理项目所需的依赖包。这种方式使得依赖管理更加简单和可靠,保证了项目的一致性和可重复性。

这里又引入了一个Go 语言模块管理的概念:初学者不理解也没有关系,后面内容涉及到了,自然就理解了。

二、Go语言的模块管理

Go语言使用Go Module来进行模块管理。Go Module是Go语言自1.11版本开始引入的官方包管理工具。使用Go Module进行模块管理的步骤如下:

  1. 在项目的根目录下初始化Go Module,可以使用以下命令:
go mod init <module-name>
  1. module-name是你的项目的模块名称,例如github.com/your-username/your-project
  2. 在项目中引入依赖包,可以使用以下命令:
go get <package-name>
  1. <package-name>是你要引入的依赖包的名称。
  2. Go Module会自动下载依赖包,并将其存储在项目的go.mod文件中。
  3. 在代码中使用依赖包,就像平常一样引入,并使用包中的功能。
  4. 在构建项目时,Go Module会自动解析和管理项目的依赖关系,并确保依赖包的正确版本被构建和使用。
  5. 如果你需要升级依赖包的版本,可以使用以下命令:
go get -u <package-name>
  1. 如果你需要移除不再使用的依赖包,可以使用以下命令:
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 语言结构

从上例也可以看到 Go 语言最简单程序的结构。

(一)、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”) 可以得到相同的结果。

需要注意的是 { 不能单独放在一行。

相关文章
|
5月前
|
人工智能 自然语言处理 算法
国产新型AI编程助手—DevChat AI插件在VSCode中的应用
国产新型AI编程助手—DevChat AI插件在VSCode中的应用
238 0
|
2月前
|
数据库连接 Go API
Golang中的25个常见错误:更好地进行go编程的综合指南
Golang中的25个常见错误:更好地进行go编程的综合指南
|
2月前
|
Dart
Flutter笔记:手动配置VSCode中Dart代码自动格式化
Flutter笔记:手动配置VSCode中Dart代码自动格式化
254 5
|
2月前
|
JavaScript 前端开发 开发者
【颠覆你的前端世界!】VSCode + ESLint + Prettier:一键拯救Vue代码于水深火热之中,打造极致编程体验之旅!
【8月更文挑战第9天】随着前端技术的发展,保持代码规范一致至关重要。本文介绍如何在VSCode中利用ESLint和Prettier检查并格式化Vue.js代码。ESLint检测代码错误,Prettier保证风格统一。首先需安装VSCode插件及Node.js包,然后配置ESLint和Prettier选项。在VSCode设置中启用保存时自动修复与格式化功能。配置完成后,VSCode将自动应用规则,提升编码效率和代码质量。
300 1
|
5月前
|
人工智能 自然语言处理 JavaScript
阿里云发布 AI 编程助手 “通义灵码”——VSCode更强了 !!
阿里云发布 AI 编程助手 “通义灵码”——VSCode更强了 !!
722 3
|
5月前
|
JSON 编解码 Go
Golang深入浅出之-HTTP客户端编程:使用net/http包发起请求
【4月更文挑战第25天】Go语言`net/http`包提供HTTP客户端和服务器功能,简化高性能网络应用开发。本文探讨如何发起HTTP请求,常见问题及解决策略。示例展示GET和POST请求的实现。注意响应体关闭、错误处理、内容类型设置、超时管理和并发控制。最佳实践包括重用`http.Client`,使用`context.Context`,处理JSON以及记录错误日志。通过实践这些技巧,提升HTTP编程技能。
69 1
|
5月前
|
Go 开发者
Golang深入浅出之-HTTP客户端编程:使用net/http包发起请求
【4月更文挑战第24天】Go语言的`net/http`包在HTTP客户端编程中扮演重要角色,但使用时需注意几个常见问题:1) 检查HTTP状态码以确保请求成功;2) 记得关闭响应体以防止资源泄漏;3) 设置超时限制,避免长时间等待;4) 根据需求处理重定向。理解这些细节能提升HTTP客户端编程的效率和质量。
61 1
|
5月前
|
SQL 关系型数据库 MySQL
Golang数据库编程详解 | 深入浅出Go语言原生数据库编程
Golang数据库编程详解 | 深入浅出Go语言原生数据库编程
|
5月前
|
JSON 编解码 Go
Golang中http编程
Golang中http编程
47 2
|
1月前
|
Go
Golang语言之管道channel快速入门篇
这篇文章是关于Go语言中管道(channel)的快速入门教程,涵盖了管道的基本使用、有缓冲和无缓冲管道的区别、管道的关闭、遍历、协程和管道的协同工作、单向通道的使用以及select多路复用的详细案例和解释。
76 4
Golang语言之管道channel快速入门篇