1、for,if后面的条件没有括号
2、if条件里面也可以定义变量
if const_file, err := ioutil.ReadFile(file_name); err != nil {
fmt.Println(err)
} else {
fmt.Printf("%s", const_file)
}
3、没有while
4、switch不需要break,也可以直接switch多个条件
func grade(score int) string {
g := ""
switch {
case score < 0 || score > 100:
panic(fmt.Sprintf("Wrong score:%d", score))
case score < 60:
g = "F"
case score < 80:
g = "C"
case score < 90:
g = "B"
case score <= 100:
g = "A"
}
return g
}
下面是for循环的一些用法
package main
import (
"bufio"
"fmt"
"os"
"strconv"
)
func convertToBin(n int) string {//十进制转二进制
result := ""
for ; n > 0; n = n / 2 { //没有起始条件
lsb := n % 2
result = strconv.Itoa(lsb) + result //强制转换为字符类型
}
return result
}
func printFile(filename string) { //一行一行读文件
file, err := os.Open(filename)
if err != nil {
panic(err)
}
scanner := bufio.NewScanner(file) //一行一行读
for scanner.Scan() { //没有初始条件,没有递增条件,相当于while
fmt.Println(scanner.Text())
}
}
func forever() {//死循环
for {
fmt.Println("hh")
}
}
func main() {
fmt.Println(convertToBin(9999))
printFile("test.txt")
forever()
}