1、哪些自变量
自变量来自数学课,多方面说,自变量等于是对一块数据信息储存空间的取名,程序流程能够根据界定一个自变量来申请办理一块数据信息储存空间,以后能够根据引入变量名来应用这方面储存空间。
1.1自变量申明
Go 語言变量名由英文字母、大数字、下横线构成,在其中首例英文字母不可以为大数字。
第一种,特定变量类型,申明后若不赋值,应用默认值。
var v_name v_type
v_name = value
第二种,依据值自主判断变量类型。
var v_name = value
第三种,省去var, 留意 :=左边的自变量不应当是早已申明过的,不然会造成编译不正确。
v_name := value
// 比如
var a int = 10
var b = 10
c : = 10
(灶具和百分号的组成:=),用以确立表述另外开展自变量申明和复位的工作中。
1.2、多自变量申明
1、种类同样好几个自变量, 非静态变量
var vname1, vname2, vname3 type
vname1, vname2, vname3 = v1, v2, v3
2、全自动推论,不用显示信息申明种类
var vname1, vname2, vname3 = v1, v2, v3
vname1, vname2, vname3 := v1, v2, v3 //出現在:=左边的自变量不应当是早已被申明过的,不然会造成编译不正确
3、种类不一样好几个自变量, 静态变量, 局部变量不可以应用这类方法
var (
vname1 v_type1
vname2 v_type2
)
案例以下:
package main
var x, y int
var ( //这类只有出現在静态变量中,涵数身体不兼容
a int
b bool
)
var c, d int = 1, 2
var e, f = 123, "hello"
//这类不带声明格式的只有在涵数体中出現
//g, h := 123, "hello"
func main(){
g, h := 123, "hello"
fmt.Println(g) //輸出自变量g
fmt.Println(h) //輸出自变量h
}
1.3、自变量赋值与复位
在自变量申明时,就给自变量特定一个值,这一全过程叫自变量复位,如:
package main
//复位自变量c的数值2;自变量d的数值2。
var c, d int = 1, 2
//复位自变量e的数值123;自变量f的数值'hello'。
var e, f = 123, "hello"
func main(){
//复位自变量g的数值123;自变量h的数值'hello'。
g, h := 123, "hello"
fmt.Println(g) //輸出自变量g
fmt.Println(h) //輸出自变量h
}
在Go英语的语法中,自变量复位和自变量赋值是2个不一样的定义。下边为申明一个自变量以后的赋值全过程:
package main
import "fmt"
func main() {
//复位自变量g的数值123;自变量h的数值'hello'。
g, h := 123, "hello"
g = 234 //将 234 赋值给自变量g
fmt.Println(g) //輸出自变量g
fmt.Println(h) //輸出自变量h
}
1.4、密名自变量
在Go語言中,单独的下横线“_”是一个独特的自变量,人们称作密名自变量(anonymous variable),密名自变量不占有命名空间,不容易分配内存。密名自变量与密名自变量中间也不容易由于数次申明而没法应用
人们在应用传统式的强种类编程语言时,常常会出現这样的事情,即在调用函数时以便获得一个值,却由于该涵数回到好几个值而迫不得已界定一堆不起作用的自变量。在Go中这样的事情能够根据应用密名自变量来防止进而让编码看上去更为的雅致。
假定getTime()函数的定义以下,它回到2个值,各自为hour和minute:
func getTime() (hour, minute int) {
return 11,20
}
若只想得到hour,则:
h,_ := getTime()
2、常量
在Go語言中,常量就是指编译期内就己知且不能更改的值。常量能够是标值种类(包含整形、浮点型和复数种类)、布尔类型、字符串数组种类等。
2.1、 常量界定
常量的界定文件格式:
const identifier [type] = value
你能省去种类说明符 [type],由于c语言编译器能够依据自变量的值来推论其种类。举例说明:
const Pi float64 = 3.14159265358979323846
const zero = 0.0 // 无种类浮点常量
const Pi, zero float32 = 3.14159265, 0.0 // 常量的多种赋值
// Pi = 3.14159265, zero = 0.0, name = "roy", 无种类整形和字符串常量
const Pi, zero, name = 3.14159265, 0.0, "roy"
2.2、枚举
界定一组常量,在Go語言中称为枚举,比如:
const (
Sunday = 0
Monday = 1
Tuesday = 2
Wednesday = 3
Thursday = 4
Friday = 5
Saturday = 6
)
2.3、预定义常量
Go語言预定义常量:true、false和iota。在其中true、false是2个bool种类的值,这一人们在后边的“基本数据类型”这一节会提到。
iota是一个能够被c语言编译器改动的常量。在每一个const关键词出現时,被重设为0,随后再下一个const出現以前,每出現一次iota,其所意味着的大数字会全自动提升1,举例说明:
package main
import (
"fmt"
)
func main() {
const (
Sunday = iota
Monday = iota
Tuesday = iota
Wednesday = iota
Thursday = iota
Friday = iota
Saturday = iota
)
const (
a = iota
b = iota
)
fmt.Println(Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday)
fmt.Println(a, b)
}
左右编码輸出:
0 1 2 3 4 5 6
0 1