当前位置: 首页 > article >正文

GO语言语法---if语句

文章目录

  • 1. 基本语法
    • 1.1 单分支
    • 1.2 双分支
    • 1.3 多分支
  • 2. Go特有的if语句特性
    • 2.1 条件前可以包含初始化语句
    • 2.2 条件表达式不需要括号
    • 2.3 必须使用大括号
    • 2.4 判断语句所在行数控制

Go语言的if语句用于条件判断,与其他C风格语言类似,但有一些独特的语法特点。

1. 基本语法

if condition {// 条件为true时执行的代码
}

1.1 单分支

以下代码表示只有一个判断,如果x > 5则执行大括号中的内容。否则持续继续往后执行。

// 单分支if x > 5 {fmt.Println("x大于5")}

1.2 双分支

以下代码也只有一个判断,如果x > 5则执行第一个大括号中的内容。否则持续else后面的大括号中的内容。

    // 双分支if x > 15 {fmt.Println("x大于15")} else {fmt.Println("x不大于15")}

1.3 多分支

以下代码有多个判断,如果x < 5则执行第一个大括号中的内容。执行完第一个括号中的内容则跳出if语句,不再进行后续的判断。如果不满足第一个判断x < 5,则进入第二次判断,第二次判断满足则执行第二次大括号中的内容,执行完跳出if语句。以此类推,如果所有条件都不满足,则执行else后大括号的内容。
注意:这里的else可以不写(效果等同于else中的语句为空),不写则当所有条件都不符合时,不执行任何内容。

    // 多分支if x < 5 {fmt.Println("x小于5")} else if x < 15 {fmt.Println("x在5到15之间")} else {fmt.Println("x大于等于15")}

2. Go特有的if语句特性

2.1 条件前可以包含初始化语句

// 用分号分隔
if y := 11; y > 10 {fmt.Println("y大于10:", y)
}

2.2 条件表达式不需要括号

条件表达式的括号可加可不加,但是这里推荐不加,因为go的源码也是没有加括号的。写法和作者保持一致。

if x > 5 {  // 正确
// if (x > 5) {  // 也可以,但不推荐

2.3 必须使用大括号

在c语言之类的语言中,如果if之后的语句只有一句是可以不使用大括号的,但是GO语言强制使用括号。其实这也很好的规范了开发者的代码风格,在很多公司中if后面不加大括号是无法通过Review。

if x > 5 fmt.Println("x大于5")  // 错误:缺少大括号

2.4 判断语句所在行数控制

	// 错误语法示例if x < 5 {fmt.Println("x小于5")} else if x < 15 {fmt.Println("x在5到15之间")} else {}// 正确语法示例if x < 5 {fmt.Println("x小于5")} else if x < 15 {fmt.Println("x在5到15之间")} else {}
http://www.lryc.cn/news/2380021.html

相关文章:

  • Unix Bourne Shell
  • GraphPad Prism项目的管理
  • 驱动-Linux定时-timer_list
  • STM32F103_LL库+寄存器学习笔记22 - 基础定时器TIM实现1ms周期回调
  • 5个yyds的.Net商城开源项目
  • C++:与7无关的数
  • [项目深挖]仿muduo库的并发服务器的解析与优化方案
  • c语言与python的异同之处
  • 国标GB28181视频平台EasyGBS校园监控方案:多场景应用筑牢安全防线,提升管理效能
  • 【视频】解决FFmpeg将RTSP转RTMP流时,出现的卡死、出错等问题
  • SHIMADZU岛津 R300RC300 Operation Manual
  • 使用 Docker 部署 React + Nginx 应用教程
  • 我创建了MariaDb数据库,但其他电脑访问不到?
  • API Gateway REST API 集成 S3 服务自定义 404 页面
  • 关于systemverilog中在task中使用force语句的注意事项
  • Python Day26 学习
  • 解决:npm install报错,reason: certificate has expired
  • 卸载云枢(MacOS 版)
  • 中科固源Wisdom平台发现NASA核心飞行控制系统(cFS)通信协议健壮性缺陷!
  • Linux内核深入学习(4)——内核常见的数据结构2——红黑树
  • 从单体架构到微服务:架构演进之路
  • 嵌入式学习笔记DAY23(树,哈希表)
  • leetcode239 滑动窗口最大值deque方式
  • 仓颉开发语言入门教程:搭建开发环境
  • Axure中继器高保真交互原型的核心元件
  • 【SpringBoot】✈️整合飞书群机器人发送消息
  • 第 1 章:数字 I/O 与串口通信(GPIO UART)
  • 【图像生成大模型】Wan2.1:下一代开源大规模视频生成模型
  • java配置webSocket、前端使用uniapp连接
  • interface接口和defer场景分析