golang 基础(7)条件语句

zidea · · 1265 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

images.png

条件语句

if 语句

if true {
    fmt.Println("this is true)
}
func bounded(num int) int {
    if num > 100 {
        return 100
    }else if num < 0 {
        return 0
    }else{
        return 0
    }
}

if 的条件里不需要括号的

  • 引入用于读取文件的io/ioutil标准库
func main()  {
    const filename = "abc.txt"
    body, err := ioutil.ReadFile(filename)
    if err != nil{
        fmt.Println(err)
    }else{
        fmt.Printf("%s\n",body)
    }
}

ioutil.ReadFile(filename) 这个函数返回两个值,分别是 []byte 和 error,go 语言中是可以返回两个值

因为我们还没有创建 abc.txt 文件所以会报错

open abc.txt: The system cannot find the file specified

我们也可以在 go 中将上面表达式进行简化,将表达式写入if语句

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

我们在 if 代码块以外是无法访问到 body error 变量

b := true
    if food := "chocolate"; b {
        fmt.Println(food)
    }

if 其实为我们提供一个作用域,

switch 语句

go 中 switch 不需要为分支语句加 break,除非使用 fallthrough

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
}

fmt.Println(
grade(0),
grade(85),
grade(120),
)

这里注意一下这里 grade(120) 也是需要以(逗号,) 结尾的,不然编译期间报错,因为我们结尾 ) 换行了,如果不换行就不需要 grade(120) 后面加 (逗号,)

因为 120 不是取值范围,所以报错并且其他值也没有计算出来。panic 会中断程序

panic: Wrong score: 120
Golang1.png

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:zidea

查看原文:golang 基础(7)条件语句

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1265 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传