Go语言入门
1、Go语言的出现
Go语言最初由Google公司的Robert Griesemer、Ken Thompson和Rob Pike三个大牛于2007年开始设计发明,他们最终的目标是设计一种适应网络和多核时代的C语言。所以Go语言很多时候被描述为“类C语言”,或者是“21世纪的C语言”,当然从各种角度看,Go语言确实是从C语言继承了相似的表达式语法、控制流结构、基础数据类型、调用参数传值、指针等诸多编程思想。但是Go语言更是对C语言最彻底的一次扬弃,它舍弃了C语言中灵活但是危险的指针运算,还重新设计了C语言中部分不太合理运算符的优先级,并在很多细微的地方都做了必要的打磨和改变。
2、Go版本的Hello World
用Hello World来简单介绍一下Go语言的所编写程序的组成:
package main
import "fmt"
fuc main(){
fmt.println("Hello World!")
}
和C语言相似,Go语言在书写和组成上有以下特点:
1.包的声明:在编写Go程序时必须在非注释的第一行声明该文件属于哪个包,如package main;
2.包的引用:与C语言的包含头文件类似,引用包就是告诉编译器该程序需要用到哪个包,如import "fmt";
3.变量:Go语言的变量名命名规则与C语言完全相同,由字母,数字,下划线组成,其中第一个字符不能为数字;
4.函数:每个程序必须有至少一个主函数;
5.注释:Go语言的注释可以在任何地方使用以 // 开头的单行注释。以 /* 开头,并以 */结尾来进行多行注释,且不可以嵌套使用。
与C语言不同的是,Go语言的一行即代表一个语句结束,不需要用分号来代表语句的结尾,这些工作可以由编译器自动来完成。
3、定义变量
3.0 变量的定义方式
声明变量的一般形式是使用 var 关键字,具体格式为:var identifier typename。
//声明变量1: var 变量名(驼峰命名法) 数据类型 = 数据值
var name string = "pw"
//声明变量2: var(一组变量)
var (
age int
phone string
)
//声明变量3:(短声明变量) 变量名 := 初始值
/*关于短声明变量:
1.短声明变量会根据初始值自动推导数据类型
2.短声明变量常用于函数内部的局部变量
3.全局变量只能通过var声明,不能使用短声明
*/
sex := "男"
//和 var 形式声明语句一样,简短变量声明语句也可以用来声明和初始化一组变量:
a,s:=1, "abc"
//全局变量声明
var (
a int
b bool
)
}
有意思的是,":="符号只能用于没有被定义过的变量,如果一个变量已经被定义过以后又使用这个符号来初始化它,就会产生编译错误,因为这个符号其实是一个声明语句。
3.1 变量的默认值
在Go语言中,如果在定义一个新的变量时没有对其进行初始化,那么该变量就会默认为零值。
| 类型 | 零值 |
|---|---|
| 数值类型 | 0 |
| 布尔类型 | false |
| 字符串 | “”(空字符串) |
3.2 变量的作用域
1.函数内定义的变量为局部变量,这种局部变量的作用域只在函数体内,函数的参数和返回值变量都属于局部变量。这种变量在存在于函数被调用时,销毁于函数调用结束后。
2.函数外定义的变量为全局变量,全局变量只需要在一个源文件中定义,就可以在所有源文件中使用,甚至可以使用import引入外部包来使用。全局变量声明必须以 var 关键字开头,如果想要在外部包中使用全局变量的首字母必须大写。
3.函数定义中的变量成为形式参数,定义函数时函数名后面括号中的变量叫做形式参数(简称形参)。形式参数只在函数调用时才会生效,函数调用结束后就会被销毁,在函数未被调用时,函数的形参并不占用实际的存储单元,也没有实际值。形式参数会作为函数的局部变量来使用。