代码地址 能够依据git log查看

package mainimport (    "bufio"    "fmt"    "io/ioutil"    "os"    "strconv"    "time")func main() {    const filenmae = "abc.txt"    contents, err := ioutil.ReadFile(filenmae)    // 写法一    if err != nil {        fmt.Println(err)    } else {        fmt.Printf("%s", contents)    }    // 写法二 if语句能够写表达式, if语句能够赋值,这里的赋值的作用域只在if语句只内    if contents, err = ioutil.ReadFile(filenmae); err != nil {        fmt.Println(err)    } else {        fmt.Printf("%s\n", contents)    }    // fmt.Println(    //     converToBin(0),    //     converToBin(2),    //     converToBin(5),    // )    readFileAsLine(filename)}// if语句func bounded(v int) int {    if v > 100 {        return 100    } else if v < 0 {        return 0    } else {        return v    }}// switch 语句func eval(a, b int, op string) int {    var result int    // switch 语句不必加break,默认有break,如果须要不break,就应用fallthrough 让他继续执行    // switch 前面能够没有表达式,在case里写条件判断    switch op {    case "+":        result = a + b    case "-":        result = a - b    case "*":        result = a * b    case "/":        result = a / b    default:        panic("参数谬误")    }    switch {    case a > 0:        fmt.Println("a")    case a < 0:        fmt.Println("b")    default:        fmt.Println("c")    }    return result}// for 语句/** * 将10进制转换成2进制 * 循环/2 取余 直到商变为9 ,而后倒转 */func converToBin(a int) string {    // for循环没有括号    // for 循环能够没有出事表达式,没有判断表达式,没有递增表达式    var result string    if a == 0 {        return strconv.Itoa(a)    }    for ; a > 0; a /= 2 {        lsb := a % 2        result = strconv.Itoa(lsb) + result    }    return result}var filename string = "abc.txt"func readFileAsLine(filename string) string {    file, err := os.Open(filename)    if err != nil {        panic(err)    }    scanner := bufio.NewScanner(file)    for scanner.Scan() {        fmt.Println(scanner.Text())        time.Sleep(1 * time.Second)    }    return ""}