跳转至

2.变量、常量、运算符和指针

2.1变量

声明

变量的声明使用关键字var,语法如下:

var 变量名字 类型 = 表达式

Info

go语言声明语句时,可以省略“类型”或者“表达式”两者之一,若省略“类型”,将自动判断类型,若省略“表达式”,将用零值初始化类型。

同时声明多个变量

如:

var i, j, k int 

或者:

var (
    i = 1
    j = 2
    k = 3
)

简短声明

如:

i, j := 0, 1

简短声明可以用在for循环等位置提高可读性。

new函数

除了上述方法,还有一个比较特殊的方法,就是new函数。这点有点类似C++中创建一个对象。

a := new(int)

Info

需要注意,返回的是指针类型

2.2常量

go语言中,常量使用const关键词声明,其语法和var一致。

const 变量名 类型 = 表达式

常量在声明时可以指定类型,也可以不指定。不指定时,go会自动判断类型,如果无法判断,就会使用untype,即无类型。

2.3运算符

数学运算符

go语言中的运算符号结合了C和python的特性,即除了标准的+-*/外,还有python的+= -= *= /=和C语言的++ --,但是要注意,go语言中,++ --运算符号只能用于变量后。

比较运算符

符号 含义
== 相等
!= 不等
> 大于
>= 大于等于
< 小于
<= 小于等于

关于字符串的比较,go在这一点上与python类似。即,可以直接使用比较运算符比较两个字符串是否相等。如:"string1" == "string2"

逻辑运算符

符号 含义
&&
||
!

go语言中也有逻辑短路。即,当与的第一个条件是假,则不判断第二个条件;或的第一个条件是真,则不判断第二个条件。

元组赋值

与Python相同,go语言具有元组赋值的特性,这对于交换变量的值十分方便。

a, b = b, a

2.4指针

和C语言一样,go语言中也有指针类型。对于变量类型int,其指针类型就是*int

取地址的值与C语言一致,*p = 表达式

取变量的地址也与C语言一致,为&a