ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

3.1 Go if 语句学习笔记

3.1 Go if 语句学习笔记 Go if 语句学习笔记1. 基本 if 语句Go 的if不需要括号包裹条件条件为 true 时执行代码块packagemainimportfmtfuncmain(){age:20// 判断 age 是否 18ifage18{fmt.Println(You are an adult)}}执行结果You are an adult要点条件不需要括号if age 18而非if (age 18)大括号{必须与if在同一行分号规则要求只有 true 分支没有 false 分支时条件不满足则什么都不做2. if-else 语句条件为 true 执行if分支为 false 执行else分支packagemainimportfmtfuncmain(){temperature:25iftemperature30{fmt.Println(Its hot outside)}else{fmt.Println(Its not hot outside)}}执行结果Its not hot outside要点else分支在条件为 false 时执行else的{也必须与else在同一行temperature 25条件25 30为 false所以走了 else 分支3. if-else if-else 多分支链多个条件按顺序判断匹配第一个满足的分支packagemainimportfmtfuncmain(){score:85ifscore90{fmt.Println(Grade: A)}elseifscore80{fmt.Println(Grade: B)}elseifscore70{fmt.Println(Grade: C)}elseifscore60{fmt.Println(Grade: D)}else{fmt.Println(Grade: F)}}执行结果Grade: B要点条件从上到下依次判断匹配第一个为 true 的分支后后面的分支全部跳过score 85 90为 false → 80为 true → 输出 B后面的 C/D/F 分支不再判断else是兜底分支所有条件都不满足时执行Go 没有类似 C 的switch-casefall-through 问题else if天然只匹配一个分支4. if 语句中的初始化if with init statementGo 支持在if条件前添加初始化语句用分号分隔。初始化变量的作用域仅限if-else块内packagemainimportfmtfuncmain(){ifx:105;x12{fmt.Println(x is greater than 12)}else{fmt.Println(x is not greater than 12)}// x 在这里不可访问// fmt.Println(x) // 编译报错undefined: x}执行结果x is greater than 12要点if x : 10 5; x 12— 分号前是初始化语句分号后是条件判断x的作用域仅限if-else整个代码块包括 else 分支块外不可访问这是 Go 的特色语法常用于先获取值再判断的场景iferr:doSomething();err!nil{// 处理错误err 只在这个 if 块内有效}// err 在这里不可访问避免污染外层作用域好处变量不需要在外层声明避免作用域污染5. 嵌套 if 语句if可以嵌套使用内层if在外层条件满足时才判断packagemainimportfmtfuncmain(){age:20ifage16{ifage21{fmt.Println(Can drink alcohol)}else{fmt.Println(Can drive but not drink alcohol)}}else{fmt.Println(Too young to drive)}}执行结果Can drive but not drink alcohol要点age 20外层age 16为 true → 进入内层 →age 21为 false → 输出 “Can drive but not drink alcohol”嵌套 if 的逻辑先判断大前提是否 16再判断小前提是否 21嵌套层级不宜过深一般不超过 2-3 层否则代码可读性差嵌套 if 可以用 else if 改写为扁平结构但逻辑含义不同嵌套是先满足 A再看 Belse if 是A/B/C 选其一知识点总结知识点关键概念基本 if条件不需要括号{必须与 if 同行if-elsetrue 走 iffalse 而走 elseif-else if-else从上到下依次判断匹配第一个为 true 的分支if 初始化语句if init; condition {}— 变量作用域仅限 if-else 块避免污染外层嵌套 if外层条件满足后才判断内层层级不宜过深
返回列表