2.变量、常量、运算符和指针¶
2.1变量¶
声明¶
变量的声明使用关键字var
,语法如下:
Info
go语言声明语句时,可以省略“类型”或者“表达式”两者之一,若省略“类型”,将自动判断类型,若省略“表达式”,将用零值初始化类型。
同时声明多个变量¶
如:
或者:
简短声明¶
如:
简短声明可以用在for循环等位置提高可读性。
new函数¶
除了上述方法,还有一个比较特殊的方法,就是new
函数。这点有点类似C++中创建一个对象。
Info
需要注意,返回的是指针类型
2.2常量¶
go语言中,常量使用const
关键词声明,其语法和var
一致。
常量在声明时可以指定类型,也可以不指定。不指定时,go会自动判断类型,如果无法判断,就会使用untype
,即无类型。
2.3运算符¶
数学运算符¶
go语言中的运算符号结合了C和python的特性,即除了标准的+-*/
外,还有python的+= -= *= /=
和C语言的++ --
,但是要注意,go语言中,++ --
运算符号只能用于变量后。
比较运算符¶
符号 | 含义 |
---|---|
== |
相等 |
!= |
不等 |
> |
大于 |
>= |
大于等于 |
< |
小于 |
<= |
小于等于 |
关于字符串的比较,go在这一点上与python类似。即,可以直接使用比较运算符比较两个字符串是否相等。如:"string1" == "string2"
。
逻辑运算符¶
符号 | 含义 |
---|---|
&& |
与 |
|| |
或 |
! |
非 |
go语言中也有逻辑短路。即,当与的第一个条件是假,则不判断第二个条件;或的第一个条件是真,则不判断第二个条件。
元组赋值¶
与Python相同,go语言具有元组赋值的特性,这对于交换变量的值十分方便。
2.4指针¶
和C语言一样,go语言中也有指针类型。对于变量类型int
,其指针类型就是*int
。
取地址的值与C语言一致,*p = 表达式
。
取变量的地址也与C语言一致,为&a
。