Go语言圣经 - 第1章 入门 - 1.1 & 1.2 Hello world & 命令行参数

第1章 入门

1.1 Hello world

编写第一个“Hello,世界”程序

package main

import "fmt"

func main() {
   fmt.Println("Hello, 世界")
}

1.1.1 go 程序除了在编译器内部可以运行之外,还可以利用go run 命令在电脑终端运行,如:

go run C:\Users\jianquanqin\GolandProjects\awesomeProject\src\helloworld\helloworld.go

1.1.2 使用 go build 可以在Windows系统下生成.exe文件,在Mac系统下生成可以直接执行的unix 文件

.exe文件意味着可以直接执行

go build helloworld.go

1.1.3 回顾上述程序本身

Go语言代码通过package来组织,类似于其他语言中的libraries 或 modules,一个package包含一个或者多个.go源代码文件

1.1.4 Go的标准库提供了100多个包,以支持常见的功能,如输入、输出、排序以及文本处理。其中main包比较特殊,它定义了一个可独立执行的程序而不是一个库,是所有程序执行时的入口

1.1.5 Go语言不需要在语句或者声明的末尾添加分号,除非一行上有多条语句

1.2 命令行参数

大多数情况下,我们都需要处理一些输入参数,比如来自程序外部文件、网络连接、其他程序的输出、敲键盘的用户、命令行参数以及其他类似的输入源。首先我们来看命令行参数:命令行参数即命令行中给定的参数。我们先来看个程序,以加深理解:

package main
import (
   "fmt"
   "os"
)
func main() {
   var s, sep string
   for i := 1; i

1)先让我们了解一下os包:它以跨平台的方式提供了一些与操作系统交互的函数和变量,其中我们要使用该包下的Args变量来获取程序的命令行参数,调用方式:os.Args

Args本质上是一个string 类型的slice(slice是一种复合数据类型,是一种长度可变的array),定义如下:

var Args []string

可以通过索引访问切片中的元素,如:os.Args[i]

2)定义变量

var s, sep string

var 定义了两个字符串变量,初始值为空字符串:“”

3)for循环

Go语言中只有for循环这一种循环结构,但是由不同形式,其中initialization;condition;post都可以省略

for initialization; condition; post { 
// zero or more statements 
}

initialization一般是短变量声明、自增语句、赋值语句或函数调用; condition是一个布尔表达式;true时执行循环体;post在循环体执行结束后执行,之后再次对condition求职,false时循环结束

for 循环可以用break 或 return终止

for可以和range搭配进行元素遍历

import (
	"fmt"
	"os"
)
func main() {
	s, sep:=" "," "
	for _,arg:= range os.Args[1:]{
		s += sep + arg
		sep = " "
	}
	fmt.Println(s,len(os.Args))
}

4)+、=

+对于字符串来说是链接两个字符串,=是赋值操作

小结:根据上面的程序,我们了解了一些Go语言的语法,那么命令行参数是什么呢?其实命令行参数在这里既可以是os.Args中的初始值(在本机情况下为: C:\Users\xxx\AppData\Local\Temp\GoLand___go_build_awesomeProject_src_helloworld.exe),也可以是os.Args新增的元素

你可能感兴趣的:(#,Go,golang,go语言)