常量使用关键字 const 定义,用于存储不会改变的数据。和C/C++的关键字const作用一致。
存储在常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。go语言定义常量的格式如下:
const 常量名[数据类型] = 值
其中,数据类型是可选的,你可以省略类型说明符,因为编译器可以根据常量的值来推断其类型。例如:
package main
import "fmt"
func main() {
const n = 10 // 隐式类型定义
const m int = 100 // 显式类型定义
fmt.Println(n)
fmt.Println(m)
}
编译器会自动推断n的数据类型是int类型。
变量变量的值可以被更改,go语言使用关键字var定义变量,常用的定义变量格式如下所示:
var 变量名[数据类型] = 值
和常量定义一样,其中的数据类型是可选的,你可以省略类型说明符,因为编译器可以根据常量的值来推断其类型。
需要说明的是,go是编译器在编译的时候进行数据类型的推断,而不是在运行时。python这样的语言是在运行时(实际上,python只拥有运行时)进行数据类型推断。
为了更加方便程序员书写代码,下面两段代码是等价的,但是第二段少写了两个var。
// 第一段代码
var a int
var b bool
var str string
// 第二段代码
var (
a int
b bool
str string
)
++和–语句
在python中,支持取消了令人感到不舒服的C/C++中的++和–运算符;而在go语言中,它们不在是运算符,而是和变量结合在一起形成语句,并且只有后置的形式。因此下面这样的代码是错误的。
var a = 0 var b = a++ // 错误,a++是语句,它没有值。我们只能将它放在单独的一行。 a++ // 正确,a++是一行语句。
记住,–和++需要和变量结合在一起形成语句,并且只能出现后置。++是自增,–是自减
参考资料- https://learnku.com/docs/the-way-to-go/variable/3585



