基础语法02
1.基础语法-输入输出
go的标准输入输出
os包 类型:*File
Stdin-标准输入Stdout-标准输出Stderr-标准错误
1. 输出
-
最常用也是最推荐的 调用
fmt包下的Println函数:fmt.Println("Hello 世界!") -
使用内置函数
println:println("Hello 世界!") -
调用
os包:os.Stdout.WriteString("Hello 世界!")
2. 输入
// 扫描从os.Stdin读入的文本,根据空格分隔,换行也被当作空格
func Scan(a ...any) (n int, err error)
// 与Scan类似,但是遇到换行停止扫描
func Scanln(a ...any) (n int, err error)
// 根据格式化的字符串扫描
func Scanf(format string, a ...any) (n int, err error)
- 用法:感觉和C语言很像
func main() {
var s, s2, s3 string
scanf, err := fmt.Scanf("%s %s \n %s", &s, &s2, &s3)
if err != nil {
fmt.Println(scanf, err)
}
fmt.Println(s)
fmt.Println(s2)
fmt.Println(s3)
}
2.基础语法-流程控制
- 条件控制
ifelseelse if
if后可以包含一些简单的语句,但必须是bool类型
func main() {
a, b := 1, 2
if a > b {
b++
} else {
a++
}
if x := 1 + 1; x > 2 {
fmt.Println(x)
}
}
switch
语句格式与各种语言都类似,不做赘述
switch expr {
case case1:
statement1
case case2:
statement2
default:
default statement
}
switch true{
//...
}
可以用
switch{
//...
}代替
- 循环控制
for基本用法:
func main {
for i := 0 i <= 20; i++ {
fmt.Println(i)
}
//可以同时初始化多个变量,但是不能有多个post statement
for x, y := 1, 2; x < 100 || y < 1000; x++ {
fmt.Println(i, j)
}
}
- 死循环
for {
//...
}
- 当成
while用:
num := 1
for num < 100 {
num *= 2
}
-
for range- 语句格式
//index为可迭代数据结构的索引,value则是对应索引下的值 for index, value := range iterable { }- 示例
func main() { sequence := "hello world" for index, value := range sequence { fmt.Println(index, value) } } -
break:终止最内层循环 -
continue:跳过最内层循环的本次迭代