<pre class="plain" name="code">package main import ( "fmt" "os" "strings" ) func main() { who := "world!" // 定义变量who if len(os.Args) > 1 { who = strings.Join(os.Args[1:], " ") } fmt.Println("hello", who) // 输出 }
所有的Go语言代码都只能放置在一个包中,每个Go程序都必须包含一个main包以及一个main()函数。main()函数作为整个程序的入口,在程序运行时被先执行。实际上Go语言中的包还可能包括init()函数,它先于main()函数被执行。
包名和函数名之间不会发生命名冲突的情况。
Go语言针对的处理单元是包,而非文件, 这意味着可以将包拆分成任意数量的文件。在Go编译器看来,如果所有这些文件的包声明都是一样的,那么它们就属于一个包,这跟把所有内容放在一个单一的文件里是一样的。
import语句导入了3个标准库中的包:
fmt包提供来格式化文本和读入格式文本的函数,
os包提供了跨平台的操作系统层面变量及函数
strings包提供了处理字符串的函数
Go语言的基本类型支持常用操作符(如“+”可用于数字加法运算符和字符串链接运算),同时Go语言的标准库也提供了拥有各种功能的包来对这些操作进行补充,如:strings。也可以给予这些基本类创建自己的类型,或者为这些类型添加自定义方法。
在Go语言中,包含函数体以及控制结构体在内的代码块均使用花括号作为边界符。从技术层面讲,Go语言的语句是以分好分隔的,但这些是由编译器自动添加的,不用手动输入,除非需要在同一行写入多个语句。
Go语言的函数和方法以关键字func定义。
:= 在Go语言中叫做快速变量的生,main()函数中的第一行语句同时声明并初始化了一个变量。Go是强类型的语言。
有疑问加站长微信联系(非本文作者)