条件控制

作者: __apple | 来源:发表于2018-05-26 11:16 被阅读0次

    每种语言都有条件控制语句,既然大家都有一定的编程经验了,那我们就来点Go不一样的东西,就不中规中矩的讲if else 是什么了,我们直接上一段读取文件内容的代码

    const filename = "learn.txt"
    if contents, err := ioutil.ReadFile(filename); err != nil {
       fmt.Println(err)
    } else {
       fmt.Printf("%s\n", contents)
    }
    

    上面的这段代码,ioutil.ReadFile是用来读取文件内容的,它返回了两个值,所以我们需要用两个值进行接受,怎么样,这里是不是与其他的编程语言不太一样了呢,其他的语言还得try except, 我们这里不用这么捕获错误,直接在返回值里面加上就可以了,也许你现在还不能适应这种写法,不过等你写的多了,你会发现这样真的很方便,if后面是不需要括号的,其实if else 在上面这种使用场景还是很多的,要好好的看一下。
    下面我们要讲的是switch,这个在Python里面是没有的,当然可以使用其他的方法实现同样的功能,但是Go的switch与其他语言有点不同,它是自带break的,就是说当你的case有个满足条件以后,下面的case就不会在执行了,当然这里你可以使用fallthrough进行强行穿透,但是这个fallthrough也有缺点,就是它会强制执行下面的case就是说如果你在上一个case中加了fallthrough那么下面的case不论是否满足条件都会执行,这个其实并不是很好用,强烈建议如果有多层判断的需求并且希望可以执行多个结果时,直接用if
    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
    }
    

    怎么样学会了嘛, 学会了可以奖励自己买个switch玩一下,哈哈。。。。。。

    相关文章

      网友评论

        本文标题:条件控制

        本文链接:https://www.haomeiwen.com/subject/ywnsrftx.html