1、Go if特點
1、if條件不需要括號
2、switch不需要break,也可以直接switch多個條件
3、switch後可以沒有表達式
package main
import (
"fmt"
"io/ioutil"
)
func main() {
const filename="abc.txt"
contents,err :=ioutil.ReadFile(filename)
//普通if語法
if err != nil{
fmt.Println(err)
}else{
fmt.Print("%s/n",contents)
}
//if條件中可以直接賦值,其作用域只有if代碼塊中
if contents1,err:=ioutil.ReadFile(filename);err!=nil{
fmt.Println(err)
}else{
fmt.Print("%s/n",contents1)
}
fmt.Println(grade(0),grade(66),grade(222))
}
func grade(score int) string{
g:=""
//switch後可沒有表達式
switch {
case score<60:
g="F"
case score<80:
g="c"
case score<100:
g="A"
default:
panic("error!!!!")
}
return g
}
2、Go循環特點
1、for的條件裏不需要括號
2、for的條件裏可以省略初始條件、結束條件、遞增表達式
3、沒有while
package main
import (
"bufio"
"fmt"
"os"
"strconv"
)
//十進制轉爲二進制
func convertToBin(n int)string{
result := ""
//省略初始條件
for;n>0;n/=2{
lsb:=n%2
result = strconv.Itoa(lsb)+result
}
return result
}
func printFile(filename string){
file,err := os.Open(filename)//打開一個文件,如果報錯,錯誤信息輸出至err
if err != nil{
panic(err)//輸出報錯信息
}
scanner := bufio.NewScanner(file)
//省略初始條件,遞增條件,可省略分號
for scanner.Scan(){
fmt.Println(scanner.Text())
}
}
func forever(){
//死循環
for {
fmt.Print("123")
}
}
func main() {
//fmt.Println(convertToBin(5),convertToBin(12))
//printFile("abc.txt")
forever()
}
本文內容來自慕課網教程