介绍
当一个计算机程序需要调用内存空间时,对内存发出的“占位”指令被称为“声明”
对于不同类型的数据结构,我们通常使用不同的关键字进行声明。比如:在声明常量时使用const,在声明变量时使用var
变量
在计算机内存中,变量(Variable)用于存储可变化的数据,并给出名称。变量的声明格式如下:
var name [type] = [expression]
- 关键字var用于声明变量定义
- name是指变量名
- type用于指定变量类型
- expression是指表达式
- type可以被省略,expression也可以被省略。但是二者不能同时被省略
Go语言中变量可以在三个地方声明:
- 函数内定义的变量为局部变量
- 函数外定义的变量为全局变量(全局变量必须以var关键字开头,如果想要在外部包中使用全局变量,则其首字母必须大写)
- 函数定义中的变量称为形式参数
package main
import (
"fmt"
)
//批量声明变量,这样可以少写几个var
//这里定义的变量为全局变量。首字母大写可以在其他包中引用此变量
var (
D3 = 300
D4 = 900
Name2 = "mary"
)
func main() {
//当一个变量被声明后,Go语言会自动赋予它一个初始值
//整型为:0
//浮点型为:0.0
//布尔型为:false
//字符串为空串:""
//指针为:nil
//变量的第1种使用方式:直接定义
var i int
fmt.Println(i)
//变量的第2种使用方式:类型推导,就是省略变量类型
var j = "hello"
fmt.Println(j)
//变量的第3种使用方式:类型推导,同时省略变量类型和var关键字
//注意:冒号不能丢,后边必须赋值。该方式仅限在一个函数体内使用
k := 3
fmt.Println(k)
//一次声明多个变量
var n1, n2, n3 int
var b1, name ,b3 = 100, "tom", 88
c1, c2, c3 := 100, "tom", 99
fmt.Println(n1, n2, n3, b1, name, b3, c1, c2, c3)
fmt.Println(D3, D4, Name2)
}
常量
在计算机内存中,常量(Constants)用于存储固定不变的数据,并给出名称,常量的声明格式如下:
const name [type] = value
- 关键字const用于声明常量的定义
- name表示常量名
- 方括号表示type部分可选,代表常量的类型,常量的类型只能是基本数据类型,即布尔型、数值型(整型、浮点型和复数型)和字符串型。当程序员没有指定该部分时,常量的类型将根据最后的value(值)自动推导得出;当程序员显式指定type时,常量将被限定为特定的数据类型
- =为赋值符号,用于将value值赋值给常量name。一旦赋值完成,名称为name的常量就有了值,且不会改变
示例一:单一常量的声明及使用
package main
import (
"fmt"
)
//单一常量声明及使用
func main() {
const age = 1 //声明值为1的整型常量age
const num int = 10 //声明值为10的整型常量num,int为指定的类型
fmt.Printf("age = %v\nnum = %v", age, num) //打印输出常量,通过逗号分隔可以输出多个常量
}
示例二:批量常量声明及使用
package main
import (
"fmt"
)
//批量常量声明及使用
func main() {
const (
age = 1
num int = 10
)
fmt.Printf("age = %v\nnum = %v", age, num)
}
示例三:常量生成器iota
使用关键字iota可以为批量常量进行连续增1赋值,iota初始值为0
package main
import (
"fmt"
)
//批量常量声明及使用
func main() {
const (
spring = iota
summer
autumn
winter
)
fmt.Println("一年四季:", spring, summer, autumn, winter)
}