var s string # 声明不赋值,使用默认值
var num int = 10
var num = 1.1 # 自推断类型,浮点型默认声明为float64类型
var a, b, c int
var a, b, c int = 1, 2, 3
num := 11
num := 10 # 自推断类型
package main
import "fmt"
func main() {
var c1 byte = 'a'
var c2 byte = '0'
var c3 int = '中'
fmt.Println(c1) // 97
fmt.Println(c2) // 48
fmt.Println(c3) // 20013
fmt.Println(string(c2)) // 0
fmt.Println(string(c2)) // 0
fmt.Println(string(c3)) // 中
fmt.Printf("%c\n", c1) // a
fmt.Printf("%c\n", c2) // 0
fmt.Printf("%c", c3) // 中
}
package main
import "fmt"
import "unsafe"
func main() {
var a = 10
var b = true
var c = 'A'
var c1 = "中"
var s = "abc"
var s1 = "中国人"
fmt.Println(unsafe.Sizeof(a)) // 8
fmt.Println(unsafe.Sizeof(b)) // 1
fmt.Println(unsafe.Sizeof(c)) // 4
fmt.Println(unsafe.Sizeof(c1)) // 16
fmt.Println(unsafe.Sizeof(s)) // 16
fmt.Println(unsafe.Sizeof(s1)) // 16
}
值类型:intx、floatx、bool、string、数组、结构体
引用类型:指针、切片、map、管道、interface等
package main
import "fmt"
func main() {
var num int = 10
ptr := &num
fmt.Println(num) // 10
fmt.Println(ptr) // 0xc0000120a8
*ptr = 20
fmt.Println(num) // 20
}