Go 语言起源 2007 年,并于 2009 年正式对外发布。它从 2009 年 9 月 21 日开始作为谷歌公司 20% 兼 职项目,即相关员工利用 20% 的空余时间来参与 Go 语言的研发工作。
Go语言基础组成结构
package main //声明文件所在的包,每个go文件必须有归属的包
import(
"fmt"
) //引入程序中需要用的包,为了使用包下的函数
func main(){ //main 主函数,程序的入口
fmt.Println("hello,word")
}
package main 定义了包名,表示一个可独立执行的程序,每个Go应用程序都包含一个名称。
import “fmt”告诉Go编译器这个程序需要使用fmt包的函数或其他元素,
fmt包实现了格式化IO的函数。 func main()是程序开始执行的函数;fmt.Println(...)是程序输出。
注意: { 不能单独放在一行,运行时会报错
在 Go 语言中,源文件都是以“go”为扩展名,程序的执行入口是 main 函数,而且 Go 语言语言要严格区分大小写。在 Go 程序中,一行代表一个语句结束,每个语句不需要像 C 语言或其它语言一样以分号 结束。
注释
Go语言中,//是可以在任何地方使用的单行注释,/* 是可以使用的多行注释,通常以 */结尾。
func main() {
//a,b是变量名
a := 100
b := 200
b, a = a, b
/*a := 100
b := 200
var c int
c = b
b = a
a = c*/
fmt.Printf("a=%d,b=%d", a, b)
}
输出
标识符
Go语言标识符用来命名变量、类型等程序实体。一个标识符实际上就是一个或是多个字母(AZ和az)数字(0~9)、下划线_组成的序列,但是第一个字符必须是字母或下划线而不能是数字。
以数字开头的视为无效标识符,如 1ab ,3cc
Go语言关键字是无效标识符,
运算符不允许作为标识符
当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,如:Group1,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为导出(像面向对象语言中的 public)
标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的(像面向对象语言中的 protected )
函数变量
Go语言是静态类型语言,因此变量(variable)是有明确类型的,编译器也会检查变量类型的正确性。不论是使用哪种高级程序语言编写程序,变量都是其程序的基本组成单位。
变量声明以关键字var开头,变量类型后置
//声明了一个名为age的变量,类型为int,并且赋值
var age int =18
如果指定变量的类型,但是不赋值,就使用默认值
如果省略var关键字,可以用 := 来书写,更加便捷,Go会自动推导类型,直接赋值但是使用时有限制。如,在定义变量时,同时显示初始化 ;不能提供数据类型 ;只能用在函数内部
//a是变量名,100是值
a := 100
声明多个变量时,可以用 var 一次性声明
var n1,n2,n3 int
fmt.Println(n1)
fmt.Println(n2)
fmt.Println(n3)
var n4,name,n5 = 10,"jack",7.8
fmt.Println(n4)
fmt.Println(name)
fmt.Println(n5)
n6,height := 6.9,175
fmt.Println(n6)
fmt.Println(height)
Go语言和许多编程语言不同,它在声明变量时将变量的类型放在变量的名称之后。这样做的好处就是可以避免像C语言中那样含糊不清的声明形式,例如:int* a, b; 。其中只有 a 是指针而 b 不是。如果你想要这两个变量都是指针,则需要将它们分开书写。而在 Go 中,则可以轻松地将它们都声明为指针类型:
var a,b *int
全局变量:定义在函数外的变量
var(
n7 = 100
n8 = risher
)
变量的数据类型分为基本数据类型和复杂数据类型两个大类
整形 int/unint 、浮点型 float 、字符型 byte 、布尔型 bool 、字符串 string 都是简单型数据类型。当一个变量被声明之后,系统自动赋予它该类型的零值:int 为 0,float 为 0.0,bool 为 false,string 为空字符串,指针为 nil 等。所有的内存在 Go 中都是经过初始化的。
变量的命名规则遵循骆驼命名法,即首个单词小写,每个新单词的首字母大写,例如:numShips 和 startDate 。