变量的定义
func main() {
var name string = "zhounan"
name = "daawei"
fmt.Println(name)
}
变量的初始化
func main() {
var (
name string
age int
address string
)
fmt.Println(name, age, address)
}
打印变量的类型
func main() {
sex := "nan"
var (
name = "zhounan"
age = 18
address = "泰州"
)
fmt.Println(name, age, address, sex)
fmt.Printf("%T,%T,%T,%T", name, age, address, sex)
}
打印对象的内存地址
func main() {
var num int
num = 100
awei := 100
fmt.Printf("num:%d,内存地址:%p", num, &num)
fmt.Printf("num:%d,内存地址:%p", awei, &awei)
awei = 200
fmt.Printf("num:%d,内存地址:%p", awei, &awei)
}
变量的交换
func main() {
var a int = 100
var b int = 200
b, a = a, b
fmt.Println(a, b)
}
匿名变量
func text() (int, int) {
return 100, 200
}
func main() {
//对象:User 将来接收这个对象里的内容时,不一定全都要接收这样就可以用到废弃符号
//_ 这个就是匿名变量
a, _ := text()
fmt.Println(a)
}
变量的作用域
var name string = "zhounan"
func main() {
age := 18
name := "awei"
fmt.Println(name, age)
name = a()
fmt.Println(name)
}
func a() string {
return name
}
常量
func main() {
//常量
const URL string = "www.baidu.com"
const URL2 = "www.baidu.com"
const a, b, c = 3.14, "zhounan", false
fmt.Println(URL)
fmt.Println(URL2)
fmt.Println(a, b, c)
}
常量iota
func main() {
const (
a = iota //0
b = iota //1
c = iota //2
d = "haha" //iota=3
e //4
f = 100 //5
g //6
h = iota //7
i //8
)
const (
j = iota //0
k //1
)
fmt.Println(a, b, c, d, e, f, g, h, i, j, k)
}
布尔类型
func main() {
//var 变量名 数据类型
//bool :true false
var isFlag bool = true
fmt.Println(isFlag)
//%T类型 %t值
fmt.Printf("%T,%t\n", isFlag, isFlag)
}
数字类型
func main() {
//定义无符号整数用uint
var a uint8 = 12
fmt.Printf("%T,%d\n", a, a)
//定义整形
//byte uint8
//rune uint32
//int uint64
var age int = 18
fmt.Printf("%T,%d\n", age, age)
//定义浮点
//默认6位小数打印
//.xf 5舍6入
//使用float64位防止数据丢失
var money float64 = 3.14
fmt.Printf("%T,%f\n", money, money)
var num2 float64 = -123.0000901
var num1 float32 = -123.0000901
num3 := float64(num1)
num4 := float32(num2)
fmt.Println("num1=", num1, "num2=", num2, "num3=", num3, "num4=", num4)
}
字符字符串
func main() {
var str string
str = "hello,zhounan"
fmt.Printf("%T,%s\n", str, str)
//单引号 字符,整型-ASCII字符码
//所有中国字的编码表:GBK
//全世界的编码表:Unicode编码表
v1 := 'A'
v2 := "A"
fmt.Printf("%T,%d\n", v1, v1)
fmt.Printf("%T,%s", v2, v2)
}
数据类型的转换
//类型转换
//转换后的变量 :=需要转换的类型(变量)
//整形是不能转换为bool类型的
func main() {
a := 3
b := 3.0
c := float64(a)
d := int(b)
fmt.Printf("%T,%d\n", a, a)
fmt.Printf("%T,%f\n", b, b)
fmt.Printf("%T,%f\n", c, c)
fmt.Printf("%T,%d\n", d, d)
}
算术运算符
func main() {
var a int = 10
b := 3
fmt.Println(a + b)
fmt.Println(a - b)
fmt.Println(a * b)
fmt.Println(a % b)
a++
fmt.Println(a)
a--
fmt.Println(a)
fmt.Printf("%d", a)
}
逻辑运算符
func main() {
var a uint = 60
var b uint = 13
var c uint = 0
c = a & b
fmt.Printf("%d\n", c)
fmt.Printf("%d,%b", c, c)
}
赋值运算符
func main() {
var a int = 4
var b int32
var c float32
var ptr *int
fmt.Printf("第一行 -a 变量的类型是 = %T\n", a)
fmt.Printf("第二行 -b 变量的类型是 = %T\n", b)
fmt.Printf("第三行 -c 变量的类型是 = %T\n", c)
ptr = &a
fmt.Printf("a的值为 %d\n", a)
fmt.Printf("ptr的值为 %p\n", ptr)
fmt.Printf("*ptr的值为 %d\n", *ptr)
}
键盘输入
func main() {
var x int
var y float64
fmt.Printf("请输入两个数")
//变量取地址 &变量
//指针,地址来修改
//Scanln阻塞等待键盘输入
fmt.Scanln(&x, &y)
fmt.Println(x, y)
}