数据类型
基本数据类型(原生数据类型):
整型、浮点型、复数型、布尔型、字符串、字符(byte、rune)。
复合数据类型(派生数据类型):
数组(array)、切片(slice)、映射(map)、函数(function)、结构体(struct)、通道(channel)、接口(interface)、指针(pointer)
有符号整型:int8、int16、int32、int64、int。无符号整型:uint8、uint16、uint32、uint64、uint。其中uint8就是byte型,int16对应C语言的short型,int64对应C语言的long型。
在go中字符串类型属于基本类型
字符类型有2种
变量
Go是一种静态类型语言,因此声明变量时必须显式或隐式地指定其类型。在Go语言中,声明变量的方式有多种,下面介绍一下go中变量的声明方式:
普通模式
var s string="Hello World"
使用关键字var声明一个变量。这个变量名为s。这个变量的类型为string。赋值运算符=表示将它右边的值赋给变量。将字符串字面量Hello World赋给变量s。
快捷变量声明
var s, t= "foot","bar"
var {
a string = "haha"
b int =3
}
简短变量声明
s:="helloworld"
编译器会推断变量的类型,因此您无须显式地指定变量的类型。请注意,只能在函数中使用简短变量声明。
匿名变量
Go语言的函数可以返回多个值,而事实上并不是所有的返回值都用得上。那么就可以使用匿名变量,用下画线“_”替换即可。
func GetData(){
return 10,20,30
}
a,_ := GetData()
_,b:=GetData()
注意事项
声明变量时如果没有给它指定值,则变量将为默认值,这种默认值被称为零值。
整型和浮点型变量默认值:0。
字符串默认值为空字符串。
布尔型默认值为false。
函数、指针变量、切片默认值为nil。
在Go语言中,为确定变量是否已经赋值,不能检查它是否为nil,而必须检查它是否为默认值。由于类型string的零值为" “,因此对于类型为string的变量,要确定是否已经给它赋值,可检查其值是否为零值” "
Go禁止将变量初始化为nil值,因为这样做将导致编译阶段错误.
在函数内使用简短变量声明,在函数外省略类型。
指针
要获取变量在计算机内存中的地址,可在变量名前加上&字符
var b= "ssss"
fmt.Println(&b)
如果要使用指针指向的变量的值,而不是其内存地址,可在指针变量前加上星号。
常量
常量指的是在整个程序生命周期内都不变的值。常量初始化后,可以引用它,但不能修改它。1
预定义标识符
关键字:
go中的可见性规则2
Go语言中,使用大小写来决定标识符(常量、变量、类型、接口、结构或函数)是否可以被外部包所调用。如果标识符以一个大写字母开头,那么其对象就可以被外部包的代码所使用(使用时程序需要先导入这个包),如同面向对象语言中的public。如果标识符以小写字母开头,则对包外是不可见的,但是它们在整个包的内部是可见并且可用的,如同面向对象语言中的private。