go - 变量和常量

1.定义变量

goLang中定义变量的方式很多

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

/*定义单个变量*/
var varName type          //定义一个 type 类型的变量 varName
varName = value           //给变量 varName 赋值
var varName type = value  //定义变量并赋初始值
/*定义多个变量*/
var varName1, varName2 type              //定义两个 type 类型的变量 varName1 和 varName2
varName1, 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 int
	num = 100
	fmt.Println(num)	//输出 100

	var num1, num2 int
	num1, num2 = 1, 2
	fmt.Println(num1, num2) //输出 1 2

	var no1, no2 = 3, 4
	fmt.Println(no1, no2) //输出 3 4

	n1, n2 := 5, 6
	fmt.Println(n1, n2)	//输出 5 6

	_, n := 7, 8
	fmt.Println(n) //输出 8

	var (
		key1 string
		key2 string
	)
	key1, key2 = "k1", "k2"
	fmt.Println(key1, key2) //输出 k1 k2

	var (
		a = 9
		b = 10
	)
	fmt.Println(a, b) //输出 9 10

	fmt.Println(id) //输出 123456

	fmt.Println(PI) //输出 3.14

	/*
	PI = 3.1415
	//改变常量的值,编译会出现错误
	//cannot assign to PI
	//cannot use 3.1415 (type float64) as type ideal in assignment
	*/
}

 


 

posted @ 2013-06-25 20:12  爱生活,爱编程  阅读(237)  评论(0编辑  收藏  举报