微信号:Golangweb

介绍:欢迎来到 Go语言社区 社区网址:www.golangweb.com APP网址:app.golangweb.com 社区非公司性质,完全个人爱好建立;做的不好的地方大家见谅.

厚土Go学习笔记 | 12. if 语句

2017-12-01 00:06 厚土火焰山

菅俊菠,70后IT人,程序员到产品经理/项目经理,先后涉猎教育、企管、煤矿、电商等多个领域的系统开发和团队管理工作。擅长业务分析、团队管理,关注前沿技术,目前注意力在golang、kotlin。微信号:hotu2010

共 1513 字,阅读需 4 分钟

在 for 循环的最后一个代码演示中,有了 if 语句。

那个 if 语句是这样写的

if (i>3) {
    break
}

有一点,你要知道。在Go语言中,if 后面的 () 不是必须的。只有 { } 是必须的。所以你可以写成这样

if i>3 {
    break
}

在Go语言中,if 还可以在条件之前执行一个简单的语句。

有这个语句定义的变量的作用域仅在 if 范围之内。

package main

import (
    "fmt"
    "math"
)

func pow(x, n, lim float64) float64 {
    if v := math.Pow(x, n); v < lim {
        return v
    }
    return lim
}

func main() {
    fmt.Println(
        pow(3, 2, 10),
        pow(3, 3, 20),
    )
}

以上这个例子是求x的n次方。如果求得的结果比 lim 小,就返回结果,否则就返回 lim 。

运行此例,可以看到这样的结果。

9 20

if 语句常会有 else 块跟随,在 if 条件之前的简单语句,在 else 块中仍然有效。

修改上面的程序,当x的n次方不小于lim时,屏幕打印一句话。

package main

import (
    "fmt"
    "math"
)

func pow(x, n, lim float64) float64 {
    if v := math.Pow(x, n); v < lim {
        return v
    } else {
        fmt.Printf("%g >= %g\n", v, lim)
    }
    return lim
}

func main() {
    fmt.Println(
        pow(3, 2, 10),
        pow(3, 3, 20),
    )
}

运行结果

27 >= 20
9 20

注意结果的显示顺序。首先是func pow()的运行结果输出,然后才是主函数的输出。

 
Golang语言社区 更多文章 Golang处理JSON(一)--- 编码 go routine &amp; channel 学习小结 Gost -- 一个极简且有用的GOPATH管理工具 Golang随机time.sleep的Duration问题 Golang中巧用defer进行错误处理
猜您喜欢 Segmented Control 教程 技术 | webpack 2 使用总结 ArchData技术峰会北京站完美谢幕,精选片段及胶片下载 找个好工作怎么那么难,涨薪究竟靠什么? 零基础成为 Google 官方认证机器学习工程师,只需要2步?