目录
一、变量赋值的几种方式
1.1 声明单个变量
语法:
var name type
- name:变量名称
- type:变量类型
案例:
package main
func main() {
var name string
var age uint
}
1.2 声明多个变量
语法:
var name1,name2 int
案例:
package main
func main() {
var num1,num2 int
}
1.3 初始化变量
在声明变量时对其进行赋值。
案例:
package main
import "fmt"
func main() {
var name string = "qinzt"
var age uint = 22
// 多变量初始化值
var height, weight = 1.78, 60.4
fmt.Printf("姓名:%v 年龄:%d 身高:%.2f 体重%.2f", name, age, height, weight)
}
代码输出结果:
姓名:qinzt 年龄:22 身高:1.78 体重60.40
1.4 变量赋值
在定义变量后,再给变量赋值,也就是先声明后赋值。
案例:
package main
import "fmt"
func main() {
var name string
var age uint
name = "qinzt"
age = 22
fmt.Println(name, age)
}
代码输出结果:
qinzt 22
1.5 自动推导类型方式声明变量
自动推到类型:在声明变量时不需要 var
和 变量类型
其变量类型是变量值来决定的。
语法:
name := value
- name:变量名称
- value:变量值
案例:
package main
import "fmt"
func main() {
name := "qinzt"
age := 22
// 自动推导类型,多变量初始化
height, weight := 1.78, 60.4
fmt.Println(name, age, height, weight)
}
代码输出内容:
qinzt 22 1.78 60.4
二、输出输入格式控制
2.1 输出格式
输出常使用 fmt.Println
和 fmt.Printf
- fmt.Println:会在输出的内容末尾添加一个换行符
- fmt.Printf:格式化字符串来输出内容,可以控制输出的格式和精度
案例:
package main
import "fmt"
func main() {
name := "qinzt"
age := 22
height, weight := 1.78, 60.4
fmt.Println(name, age, height, weight)
fmt.Printf("姓名:%v 年龄:%v 身高:%.2f 体重:%.2f", name, age, height, weight)
}
- %v: 值的默认格式表示
- %.2f: 输出浮点类型,.后面2位
代码输出内容:
qinzt 22 1.78 60.4
姓名:qinzt 年龄:22 身高:1.78 体重:60.40
2.1 输入格式
输出常使用 fmt.Scan
可以接受输入的内容将其赋值给变量
案例:
package main
import "fmt"
func main() {
var name string
var age int
fmt.Println("请输入您的姓名:")
fmt.Scan(&name)
fmt.Println("请输入您的年龄:")
fmt.Scan(&age)
fmt.Printf("姓名:%v 年龄:%v", name, age)
}
代码输出内容:
请输入您的姓名:
qinzt
请输入您的年龄:
22
姓名:qinzt 年龄:22
2.3 输出变量对应的地址
在内存中变量会开辟对应的存储单元,为了能够找到该存储单元对应数据,系统会给每个单元加上一个编号,这个编号就是变量的地址
案例:
package main
import "fmt"
func main() {
var name string
var age int
fmt.Println(&name, &age)
fmt.Printf("%p %p", &name, &age)
}
代码输出内容:
0xc000050270 0xc000018098
0xc000050270 0xc000018098
三、变量数据类型
1.1 整形
整形分为两类,分别是 有符号整数
和 无符号整数
- 有符号:表示既可以表示负数、也可以表示整数、也可以表示零
- 无符号:只能是正整数
1)有符号整数
类型 | 有无符号 | 占用存储空间 | 表数范围 |
---|---|---|---|
int8 | 有 | 1字节 | -128~127 |
int16 | 有 | 2字节 | -32768~32767 |
int32 | 有 | 4字节 | -2147483648~2147483647 |
int64 | 有 | 8字节 | -9223372036854775808~9223372036854775807 |