局部变量和全局变量
- 在函数体外声明的变量称之为全局变量,全局变量可以在整个包甚至外部包(被导出后)使用。
- Go 语言程序中全局变量与局部变量名称可以相同,但是函数内的局部变量会被优先考虑。
数组
var variable_name [SIZE] variable_type
var balance = [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0} 数组的初始化
var balance = [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0} 如果忽略数组的大小,go会根据大小自动设置
多维数组
var variable_name [SIZE1][SIZE2]...[SIZEN] variable_type
var threedim [5][10][4]int 声明了三维的整数类型数组
多维数组可通过大括号来初始值。以下实例为一个 3 行 4 列的二维数组:
a = [3][4]int{
{0, 1, 2, 3} , /* 第一行索引为 0 */
{4, 5, 6, 7} , /* 第二行索引为 1 */
{8, 9, 10, 11}, /* 第三行索引为 2 */
}
注意:以上代码中倒数第二行的 } 必须要有逗号,因为最后一行的 } 不能单独一行,也可以写成这样:
a = [3][4]int{
{0, 1, 2, 3} , /* 第一行索引为 0 */
{4, 5, 6, 7} , /* 第二行索引为 1 */
{8, 9, 10, 11}} /* 第三行索引为 2 */
Go语言向函数传递数组
如果想向函数传递数组参数,需要在函数定义时,声明形参为数组,我们可以通过以下两种方式来声明:
void myFunction(param [10]int)
{
.
}
方式二
形参未设定数组大小:
void myFunction(param []int)
{
.
}
Go空指针
当一个指针被定义后没有分配到任何变量时,它的值为 nil。
nil 指针也称为空指针。
nil在概念上和其它语言的null、None、nil、NULL一样,都指代零值或空值。
一个指针变量通常缩写为 ptr。
空指针判断:
if(ptr != nil) /* ptr 不是空指针 */
if(ptr == nil) /* ptr 是空指针 */