阅读目录
fmt 包
fmt = format,是一种格式化输出函数汇总包,用于格式化输出。
fmt.Print 原样输出
package main
import (
"fmt"
)
const name, age = "willem", 32
func main() {
fmt.Print("%s", name, "%d", age)
}
// 输出:%swillem%d32
fmt.Printf 格式输出
使用方法:
fmt.Printf("%格式1%格式2", 变量值1, 变量2)
package main
import (
"fmt"
)
func main() {
const name, age = "willem", 32
// fmt.Printf(name, age) // 输出结果:willem%!(EXTRA int=32)
fmt.Printf("%s%d", name, age) // 输出结果:willem32
}
常见的格式输出形式:
- %s — 字符串
- %d — 10进制数值
- %T — type(值)
fmt.Println 值 + 空格 输出
package main
import (
"fmt"
)
func main() {
const name, age = "willem", 22
fmt.Println(name, age) // 输出结果 willem 空格 22
}
换行输出
package main
import (
"fmt"
)
func main() {
const name, age = "willem", 22
fmt.Println(name, "\n", age) // 输出结果 willem 空格 22
}
Println 和 Print 区别
Println 会自动换行 Print 不会。
package main
import (
"fmt"
)
func main() {
fmt.Println("A")
fmt.Println("B")
fmt.Println("C")
}
func main() {
fmt.Print("A")
fmt.Print("B")
fmt.Print("C")
}
Println 和 Printf 区别
package main
import (
"fmt"
)
func main() {
// go 语言中定义变量必须要使用
// var a = "aaa"
var c int = 10
var e int = 3
var f int = 5
// fmt.Println("c=", c, "e=", e, "f=", f)
// 输出格式:c= 10 e= 3 f= 5
fmt.Printf("c=%v e=%v f=%v", c, e, f)
// 输出格式:c=10 e=3 f=5
}
换行输出:
func main() {
// go 语言中定义变量必须要使用
// var a = "aaa"
var c int = 10
var e int = 3
var f int = 5
// fmt.Println("c=", c, "e=", e, "f=", f)
// 输出格式:c= 10 e= 3 f= 5
fmt.Printf("c=%v e=%v f=%v \n", c, e, f)
fmt.Printf("c=%v e=%v f=%v", c, e, f)
// 输出格式:c=10 e=3 f=5
}
变量
类型推导方式定义变量
func main() {
// 类型推导方式定义变量
a := 10
b := 20
c := 30
fmt.Printf("a=%v b=%v c=%v", a, b, c)
// 输出:a=10 b=20 c=30
}
使用 Printf打印一个变量的类型
func main() {
// 类型推导方式定义变量
a := 10
fmt.Printf("a=%v a的类型是%T", a, a)
// 输出:a=10 a的类型是int
}
格式化打印中的常用占位符
%v,原样输出
%T,打印类型
%t,bool类型
%s,字符串
%f,浮点
%d,10进制的整数
%b,2进制的整数
%o,8进制
%x,%X,16进制
%x:0-9,a-f
%X:0-9,A-F
%c,打印字符
%p,打印地址
...
示例 1
package main
import (
"fmt"
)
func main() {
a := 100 //int
b := 3.14 //float64
c := true // bool
d := "Hello World" //string
f := 'A'
fmt.Printf("%T,%b\n", a, a)
fmt.Printf("%T,%f\n", b, b)
fmt.Printf("%T,%t\n", c, c)
fmt.Printf("%T,%s\n", d, d)
fmt.Printf("%T,%d,%c\n", f, f, f)
fmt.Println("-----------------------")
fmt.Printf("%v\n", a)
fmt.Printf("%v\n", b)
fmt.Printf("%v\n", c)
fmt.Printf("%v\n", d)
fmt.Printf("%v\n", f)
}
running...
int,1100100
float64,3.140000
bool,true
string,Hello World
int32,65,A
-----------------------
100
3.14
true
Hello World
65
键盘输入
package main
import (
"fmt"
)
func main() {
var x int
var y float64
fmt.Println("请输入一个整数,一个浮点类型:")
fmt.Scanln(&x, &y) //读取键盘的输入,通过操作地址,赋值给x和y 阻塞式
fmt.Printf("x的数值:%d,y的数值:%f\n", x, y)
fmt.Scanf("%d,%f", &x, &y)
fmt.Printf("x:%d,y:%f\n", x, y)
}
PS E:\golang\src> go run .\main.go
请输入一个整数,一个浮点类型:
50 3.1415926
x的数值:50,y的数值:3.141593
x:50,y:3.141593
PS E:\golang\src>