go if语法

go if语句自身的特点

和 Go 函数一样,if 语句的分支代码块的左大括号与 if 关键字在同一行上,这也是 Go 代码风格的统一要求,gofmt 工具会帮助我们实现这一点;
if 语句的布尔表达式整体不需要用括号包裹,一定程度上减少了开发人员敲击键盘的次数。而且,if 关键字后面的条件判断表达式的求值结果必须是布尔类型,即要么是 true,要么是 false
 

操作符优先级

func main() {
    a, b := false,true
    if a && b != true {
        println("(a && b) != true")
        return
    }
    println("a && (b != true) == false")
}

//print: a && (b != true) == false

语句形式

单分支

    if t1 := true; t1 {
        fmt.Println("t1 is true")
    }

二分支、多分支

    var v2 int = 10
    if v2 > 10 {
        fmt.Println("v2>10!")
    } else if v2 > 5 {
        fmt.Println("10>=v2>5")
    } else {
        fmt.Println("v3<=5")
    }

if 自用变量

在 if 语句中声明自用变量是 Go 语言的一个惯用法,这种使用方式直观上可以让开发者有一种代码行数减少的感觉,提高可读性。

同时,由于这些变量是 if 语句自用变量,它的作用域仅限于 if 语句的各层隐式代码块中,if 语句外部无法访问和更改这些变量,这就让这些变量具有一定隔离性,这样你在阅读和理解 if 语句的代码时也可以更聚焦。
 

快乐路径

Go 社区把这种 if 语句的使用方式称为 if 语句的“快乐路径(Happy Path)”原则,所谓“快乐路径”也就是成功逻辑的代码执行路径,
它的特点是这样的:
仅使用单分支控制结构;
当布尔表达式求值为 false 时,也就是出现错误时,在单分支中快速返回;
正常逻辑在代码布局上始终“靠左”,这样读者可以从上到下一眼看到该函数正常逻辑的全貌;
函数执行到最后一行代表一种成功状态。
    if v2 > 10 {
        fmt.Println("v2>10!")
        return
    }

    if v2 > 5 {
        fmt.Println("10>=v2>5")
        return
    }

 



posted on 2022-08-20 04:54  爱吃柠檬不加糖  阅读(504)  评论(0编辑  收藏  举报

导航