go - 变量和常量

来源:互联网 发布:知画的孩子是谁的 编辑:程序博客网 时间:2024/05/22 10:24

1.定义变量

goLang中定义变量的方式很多

先声明再使用;如果定义的变量未使用编译时会报错
a. 

/*定义单个变量*/var varName type          //定义一个 type 类型的变量 varNamevarName = value           //给变量 varName 赋值var varName type = value  //定义变量并赋初始值/*定义多个变量*/var varName1, varName2 type              //定义两个 type 类型的变量 varName1 和 varName2varName1, varName2 = val1, val2          //给两个变量分别赋值,varName1 = val1 ...var varName1, varName2 type = val1, val2 //定义两个 type 类型的变量,varName1 = val1 ...
b.
/*单个*/var varName = val                   //定义变量并赋初始值,系统会根据 val (值)的类型来定义 varName (变量)的类型/*多个*/var varName1, varName2 = val1, val2 //varName1 = val1 ... (同上)
c.
/*单个*/varName := val                   //同 b 一样,根据值来判定变量的类型/*多个*/varName1, varName2 := val1, val2 //varName1 = val1 ...//用 ":=" 取代 var type,写法更简洁,但是这种声明方式只能用在函数内部,否则编译会报错
d.
_, varName2 := val1, val2  //丢弃 val1 , varName2 = val2//_(下划线)是一个特殊的变量,赋给它的值会被丢弃

e.

定义多个变量时可用 ( ) 来声明,减少代码量

var (    varName1 type    varName2 type) //定义两个变量var (    varName1 = val1    varName2 = val2) //定义两个变量并赋值

2. 常量

常量:在程序不能被改变的值,一般都定义为数值,布尔值,字符串等

格式:

const constName [type] = val//定义一个常量 constName = val , type可省略,编译时系统会根据 val 来确定类型

注:

1). var num = 3 //实际上 3 也称为常量

2). 格式中 val 可以是表达式,但不能为运行时才能知道结果的表达式

3). 预定义常量: true / false / iota

4). 定义多个常量时,也可用下面方式

const (    constName1 [type] = val1    constName2 [type] = val2)


note_var_const.go code list

package main //声明当前文件所属的包名,main 是一个可独立运行的包,编译后会生成可执行文件import "fmt" //导入包var id = 123456/*id2 := 654321//在函数外用 := ,编译时会出现错误//non-declaration statement outside function body*/const PI = 3.14//每个可独立运行的程序,都包含入口函数 main ,与其他语言相同,但无参数和返回值func main() {var num intnum = 100fmt.Println(num)//输出 100var num1, num2 intnum1, num2 = 1, 2fmt.Println(num1, num2) //输出 1 2var no1, no2 = 3, 4fmt.Println(no1, no2) //输出 3 4n1, n2 := 5, 6fmt.Println(n1, n2)//输出 5 6_, n := 7, 8fmt.Println(n) //输出 8var (key1 stringkey2 string)key1, key2 = "k1", "k2"fmt.Println(key1, key2) //输出 k1 k2var (a = 9b = 10)fmt.Println(a, b) //输出 9 10fmt.Println(id) //输出 123456fmt.Println(PI) //输出 3.14/*PI = 3.1415//改变常量的值,编译会出现错误//cannot assign to PI//cannot use 3.1415 (type float64) as type ideal in assignment*/}