GO语言——变量

声明方式

var name type

和C/C++中

type name;
extern type name;

在go语言中所有形式变量名称都在类型的前面,这点和C/C++是反过来的。注意如果局部变量C/C++会是一个随机值,而go语言会初始化为0

定义方式

var n int = 10
n := 10

这两行是等价的。第一行指定了n为int型并赋值为10。第二行用了:=表示定义一个新的变量n,并根据右边的表达式自动推定n的类型并赋值。注意 := 在这里只能定义一个新的变量,如果n之前被定义过,那么就会报错。

和C++ 11中

int n = 10;
auto n = 10;

相对应。

另外go语言支持多了不同类型的变量同时定义或赋值如下

str, n, f := "ok", 10, 11.10
str, n = "no", 20

编译器会依次对变量进行定义或赋值。注意第一行的写法中三个变量中必须有一个在此之前没有被定义过。

go语言是有package的概念,有点类似C++的namespace。不同的是,go语言的包是强制的,C++的namespace并不是。所以直接的影响是全局变量。例如在go语言中

package test

var(
    i int
    I int
)

定义了两个全局变量小写的i和大写的I。之所以这么做的原因是在go语言中所有大写字母开头的都可以被其他的包访问,但是小写字母开头的就认为是这个包内可见。所以在另一个包中只能访问到I但是无法访问到i。访问方式是test.I。类似C/C++中

namesapce test
{
    int i;
    int I;
}

访问方式 test::i 和 test::I。但是这两个变量的有效范围是一致的。

未完待续。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值