声明变量使用:var
声明常量使用:const
大多数的数据类型的值都可以赋值给一个变量。而常量则不同,常量只能被赋予基本类型的值本身。
例子说明:
package main
import "fmt"
const cons string = "constant"
func main() {
//变量:普通赋值,由关键字var、变量名称、变量类型、特殊标记=,以及相应的值组成。
//单个声明赋值
var a = "initial"
fmt.Println(a) // initial
// 平行声明赋值,int 可以省略
var b, c int = 1, 2
fmt.Println(b, c) // 1 2
var d, s = true, "str"
fmt.Println(d, s) // true str
//只声明,不赋值,默认0
var e int
fmt.Println(e) // 0
//使用:=赋值
f := "short"
fmt.Println(f) // short
//多行赋值
var (
num1 = 4
num2 = "5"
)
fmt.Println(num1, num2) // 4 5
//常量
fmt.Println(cons) //constant
//单个声明赋值
const n = 500000000
fmt.Println(math.Sin(n)) // -0.28470407323754404
//强制转换
const m = 3e20 / n
fmt.Println(m) // 6e+11
fmt.Println(int64(m)) // 600000000000
//平行赋值
const s1, in1 = "s1", 1
fmt.Println(s1, in1) // s1 1
//多行
const (
s2 = "s2"
in2 = 2
)
fmt.Println(s2, in2) // s2 2
}
其他类型变量声明类似:
var (
v1 int // 整形
v2 *int // 指针
v3 string // 字符串
v4 []int // 数组切片
v5 [10]int // 数组
v6 map[string]int // map
v8 func(a int) int // 函数
v7 struct { // 结构体
f int
}
)