没有合适的资源?快使用搜索试试~ 我知道了~
初级golang个人笔记
需积分: 0 26 浏览量
2023-05-29
16:26:30
上传
评论
收藏 10.12MB DOCX 举报
温馨提示
初级golang个人笔记
资源推荐
资源详情
资源评论




·go 常用命令
直接在终端中输入 go help 即可显示所有的 go 命令以及相应命令功能简介,主要有下面这些:
build: 编译包和依赖
clean: 移除对象文件
doc: 显示包或者符号的文档
env: 打印 go 的环境信息
bug: 启动错误报告
fix: 运行 go tool fix
fmt: 运行 gofmt 进行格式化
generate: processing source 生成 go 文件
get:下载并安装包和依赖
install:编译并安装包和依赖
list:列出包
run:编译并运行 go 程序
test:运行测试
tool:运行 go 提供的工具 version:显示 go 的版本 vet:运行 go tool vet
·快速入门
package main
import "fmt"
func main(){
fmt.Println("sadas")
}
(1) go 文件的后缀是 .go
(2) package main 表示该 hello.go 文件所在的包是 main, 在 go 中,每个文件都必须归属于一个包。
(3) import “fmt” 表示:引入一个包,包名 fmt, 引入该包后,就可以使用 fmt 包的函数,比如:
fmt.Println
(4) func main() { }
func 是一个关键字,表示一个函数。 main 是函数名,是一个主函数,即我们程序的入口。
(5) fmt.Println(“hello”) 表示调用 fmt 包的函数 Println
·通过 go build 命令对该 go 文件进行编译,生成 .exe 文件.
·运行 hello.exe

运行 hello.exe 文件即可
·注意:通过 go run 命令可以直接运行 hello.go 程序 [类似执行一个脚本文件的形式
·Golang 执行流程分析 �
如果是对源码编译后,再执行,Go 的执行流程如下图 �
如果我们是对源码直接 执行 go run 源码,Go 的执行流程如下图 �
两种执行流程的方式区别
1) 如果我们先编译生成了可执行文件,那么我们可以将该可执行文件拷贝到没有 go 开发环境的机
器上,仍然可以运行
2) 如果我们是直接 go run go 源代码,那么如果要在另外一个机器上这么运行,也需要 go 开发
环境,否则无法执行。
3) 在编译时,编译器会将程序运行依赖的库文件包含在可执行文件中,所以,可执行文件变大了
很多。
尚硅谷 Go 语言课程
更多 Java –大数据 –前端 –python 人工智能- 区块链 资料下载,可访问百度:尚硅谷官网
第 I 页
尚硅谷 Go 语言核心编程
尚硅谷-韩顺平尚硅谷 Go 语言课程
更多 Java –大数据 –前端 –python 人工智能- 区块链 资料下载,可访问百度:尚硅谷官网
第 II 页
第 1 章 GOLANG 开山篇........................................................................................................................................................... 1
1.1 GOLANG 的学习方向............................................................................................................................................................. 1
1.2 GOLANG 的应用领域............................................................................................................................................................. 1
第 2 章 Golang 的概述
·Golang 的语言的特点
简介:
Go 语言保证了既能到达静态编译语言的安全和性能,又达到了动态语言开发维护的高效率

,使用一个表达式来形容 Go 语言:Go = C + Python , 说明 Go 语言既有 C 静态语言程
序的运行速度,又能达到 Python 动态语言的快速开发。
1) 从 C 语言中继承了很多理念,包括表达式语法,控制结构,基础数据类型,调用参数传值,指针等
等,也保留了和 C 语言一样的编译执行方式及弱化的指针
举一个案例(体验):
//go 语言的指针的使用特点(体验)
func testPtr(num *int) {
*num = 20
}
2) 引入包的概念,用于组织程序结构,Go 语言的一个文件都要归属于一个包,而不能单独存在。
3) 垃圾回收机制,内存自动回收,不需开发人员管理
4) 天然并发 (重要特点)
(1) 从语言层面支持并发,实现简单
(2) goroutine,轻量级线程,可实现大并发处理,高效利用多核。
(3) 基于 CPS 并发模型(Communicating Sequential Processes )实现
5) 吸收了管道通信机制,形成 Go 语言特有的管道 channel 通过管道 channel , 可以实现不同的 goroute
之间的相互通信。
6) 函数可以返回多个值。举例:
//写一个函数,实现同时返回 和,差
//go 函数支持返回多个值
func getSumAndSub(n1 int, n2 int) (int, int ) {
sum := n1 + n2 //go 语句后面不要带分号.
sub := n1 - n2
return sum , sub
}
7) 新的创新:比如切片 slice、延时执行 defer
2.8 Go 语言快速开发入门
2.8.1 需求
要求开发一个 hello.go 程序,可以输出 "hello,world”
2.8.2 开发的步骤
1) 开发这个程序/项目时,go 的目录结构怎么处理.

对上图的说明
(1) go 文件的后缀是 .go
(2) package main
表示该 MyFamilyAccount.go 文件所在的包是 utils, 在 go 中,每个文件都必须归属于一个包。
(3) import “fmt”
表示:引入一个包,包名 fmt, 引入该包后,就可以使用 fmt 包的函数,比如:fmt.Println
(4) func main() {
}
func 是一个关键字,表示一个函数。
main 是函数名,是一个主函数,即我们程序的入口。
(5) fmt.Println(“hello”)
表示调用 fmt 包的函数 Println 输出 “hello,world”
·运行
3) 通过 go build 命令对该 go 文件进行编译,生成 .exe 文件.
如:
4) 运行 hello.exe 文件即可

5) 注意:通过 go run 命令可以直接运行 hello.go 程序 [类似执行一个脚本文件的形式]
·Golang 执行流程分析
如果是对源码编译后,再执行,Go 的执行流程如下图
如果我们是对源码直接 执行 go run 源码,Go 的执行流程如下图
两种执行流程的方式区别
如果是对源码编译后,再执行,Go 的执行流程如下图 �
如果我们是对源码直接 执行 go run 源码,Go 的执行流程如下图 �
两种执行流程的方式区别
1) 如果我们先编译生成了可执行文件,那么我们可以将该可执行文件拷贝到没有 go 开发环境的机
器上,仍然可以运行
2) 如果我们是直接 go run go 源代码,那么如果要在另外一个机器上这么运行,也需要 go 开发
环境,否则无法执行。
3) 在编译时,编译器会将程序运行依赖的库文件包含在可执行文件中,所以,可执行文件变大了
很多。
·编译和运行说明
1) 有了 go 源文件,通过编译器将其编译成机器可以识别的二进制码文件。
2) 在该源文件目录下,通过 go build 对 hello.go 文件进行编译。可以指定生成的可执行文件名,在
windows 下 必须是 .exe 后缀。
3) 如果程序没有错误,没有任何提示,会在当前目录下会出现一个可执行文件(windows 下是.exe
Linux 下是一个可执行文件),该文件是二进制码文件,也是可以执行的程序。
4) 如果程序有错误,编译时,会在错误的那行报错。有助于程序员调试错误.
5) 运行有两种形式
2.8.8Go 程序开发的注意事项
1) Go 源文件以 "go" 为扩展名。
剩余190页未读,继续阅读
资源评论


猫与狗不可兼得
- 粉丝: 6
- 资源: 1
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- baiduwenku_AndroidPhone_1029855y.apk
- 8051 高精度电子秤HX711
- 文件反转2.0.py
- 开源OA协同办公系统,集成Flowable流程引擎 可拖拽创建个性表单 基于RuoYi-VUE版本开发
- 开源OA协同办公系统 集成Flowable流程引擎 可拖拽创建个性表单
- 最新版本2023UI千月影视APP源码 开源完美版前后端完美匹配 后端基于ThinkPHP框架
- 浪子易支付源码 优化缓存机制
- PHP域名授权验证系统是一个功能强大的系统,提供了多项功能来保护你的域名和软件的合法性 它包括盗版追踪、域名IP双重授权、在线加
- 支持免费的Openai人工智能 问答记录保留 系统
- 彩纸屋开源定制少儿编程培训管理系统源码 在线培训系统源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
