golang学习笔记——条件表达式

文章目录

  • 条件表达式
    • [if 语句的语法](#if 语句的语法)
    • [复合 if 语句](#复合 if 语句)

条件表达式

在任何编程语言中,最基本的控制流都是 if/else 语句。 在 Go 中,if/else 语句非常简单。 但是,你需要先了解一些差异,然后才能得心应手地编写 Go 程序。

让我们看看 if 语句的 Go 语法。

if 语句的语法

与其他编程语言不同的是,在 Go 中,你不需要在条件中使用括号。 else 子句可选。 但是,大括号仍然是必需的。 此外,为了减少行,Go 不支持三元 if 语句,因此每次都需要编写完整的 if 语句。

下面是 if 语句的一个基本示例:

复制代码
package main

import "fmt"

func main() {
    x := 27
    if x%2 == 0 {
        fmt.Println(x, "is even")
    }
} 

在 Visual Studio Code 中,如果你的 Go 语法在条件中包含括号,系统会在你保存程序时自动删除括号。

复合 if 语句

Go 支持复合 if 语句。 可以使用 else if 语句对语句进行嵌套。 下面是一个示例:

复制代码
package main

import "fmt"

func givemeanumber() int {
    return -1
}

func main() {
    if num := givemeanumber(); num < 0 {
        fmt.Println(num, "is negative")
    } else if num < 10 {
        fmt.Println(num, "has only one digit")
    } else {
        fmt.Println(num, "has multiple digits")
    }
} 

请注意,在此代码中,num 变量存储从 givemeanumber() 函数返回的值,并且该变量在所有 if 分支中可用。 但是,如果尝试在 if 块之外输出 num 变量的值,则会出现如下错误:

复制代码
package main

import "fmt"

func somenumber() int {
    return -7
}
func main() {
    if num := somenumber(); num < 0 {
        fmt.Println(num, "is negative")
    } else if num < 10 {
        fmt.Println(num, "has 1 digit")
    } else {
        fmt.Println(num, "has multiple digits")
    }

    fmt.Println(num)
} 

运行程序时,错误输出如下所示:

复制代码
# command-line-arguments
./main.go:17:14: undefined: num 

在 Go 中,在 if 块内声明变量是惯用的方式。 这是一种使用在 Go 中常见的约定进行高效编程的方式。

相关推荐
minglie117 小时前
高等代数试题
学习
Xiaofeng369318 小时前
GPT-5.6 发布后,我用了一个周末重新规划学习路线图
gpt·学习
其实防守也摸鱼19 小时前
运维--怎么看接口的请求和返回
运维·学习·网络安全·网络攻击模型·burpsuite·攻防对抗·蓝队
酷讯网络_24087016020 小时前
区块粮仓宠物NFT源码区块狗/抢购转让预约区块投资理财系统
学习·开源·宠物
疯狂打码的少年20 小时前
【软件工程】软件开发模型:增量模型与迭代模型
笔记·软件工程
Generalzy20 小时前
从本地 Demo 到生产级检索:Milvus 学习笔记(3)
笔记·学习·milvus
心中有国也有家21 小时前
AtomGit Flutter 鸿蒙客户端:ModalBottomSheet 实战
android·javascript·学习·flutter·华为·harmonyos
tyqtyq2221 小时前
求职信生成:AI 智能求职信撰写系统的鸿蒙实现
人工智能·学习·华为·生活·harmonyos
MartinYeung51 天前
[论文学习]PrivacyLens:评估语言模型在行动中的隐私规范意识
人工智能·学习·语言模型
凉、介1 天前
Virtio 系列(一):框架概览
笔记·学习·嵌入式·虚拟化·virtio