1.os.Args是做什么的

Python012

1.os.Args是做什么的,第1张

仅为个人阅读时遇到的困惑的理解

2021.6.16

《GO语言圣经》-《GO程序设计语言》

P3

在命令行中运行 go run main.go 123

会输出 123

在命令行中分别输入(注意空格

(1) go run main.go 123

(2) go run main.go 1 2 3

(1)中输出结果

第一行是go命令的位置

第二行是for循环内的“一个参数”的结果

第三行是for循环外的最终结果

(2)中输出结果

第二行是for循环内“第一个参数”的结果

第三行是for循环内“第一个和第二个参数”的结果

以此类推。

(3)如果空格大于一个,仍会以一个空格输出

这时我才理解到书中所讲述的:

也就是以空格分隔代表新的一个参数。

仅为个人阅读时遇到的困惑的理解,希望友善讨论

2021.6.25

《GO语言圣经》-《GO程序设计语言》

P5

在命令行中运行

go run main.go 一 二三 四

得到的结果

在命令行中运行

go run main.go 一 二三 四

得到的结果

range 获取一个范围,

有两个返回值,在本例中分别是 i 和 arg 。

第一个返回值 i 总是从0开始的,和 range 取范围的值(也就是本例中的 os.Args )无关。(也就是本例中 os.Args[1:] 虽然是从 os.Args 的1值开始取的,但是在 range 中还是0)。

第二个返回值 arg 是切片的结果。

我理解的: range 将 os.Args 切成一个数组,先返回数组下标,再返回数组内容。

Go语言由Google公司开发,并于2009年开源,相比Java/Python/C等语言,Go尤其擅长并发编程,性能堪比C语言,开发效率肩比Python,被誉为“21世纪的C语言”。

Go语言在云计算、大数据、微服务、高并发领域应用应用非常广泛。BAT大厂正在把Go作为新项目开发的首选语言。

Go语言能干什么?

1、服务端开发:以前你使用C或者C++做的那些事情,用Go来做很合适,例如日志处理、文件系统、监控系统等

2、DevOps:运维生态中的Docker、K8s、prometheus、grafana、open-falcon等都是使用Go语言开发

3、网络编程:大量优秀的Web框架如Echo、Gin、Iris、beego等,而且Go内置的 net/http包十分的优秀

4、Paas云平台领域:Kubernetes和Docker Swarm等

5、分布式存储领域:etcd、Groupcache、TiDB、Cockroachdb、Influxdb等

6、区块链领域:区块链里面有两个明星项目以太坊和fabric都使用Go语言

7、容器虚拟化:大名鼎鼎的Docker就是使用Go语言实现的

8、爬虫及大数据:Go语言天生支持并发,所以十分适合编写分布式爬虫及大数据处理。