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

Go语言--语法基础5--基本数据类型--类型转换

Go 编程语言中 if 条件语句的语法如下:

1、基本形式

if 布尔表达式 {
/* 在布尔表达式为 true 时执行 */
}
If 在布尔表达式为 true 时,其后紧跟的语句块执行,如果为 false
不执行。
package main
import "fmt"
func main() {
var a int = 10
if a < 20 {
fmt.Printf("a 小于 20\n" )
}
fmt.Printf("a 的值为 : %d\n", a)
}
以上代码执行结果为:
a 小于 20
a 的值为 : 10

2if...else 语句的语法如下:

if 布尔表达式 {
/* 在布尔表达式为 true 时执行 */
} else {
/* 在布尔表达式为 false 时执行 */
}
If 在布尔表达式为 true 时,其后紧跟的语句块执行,如果为 false
执行 else 语句块。
package main
import "fmt"
func main() {
var a int = 100
if a < 20 {
fmt.Printf("a 小于 20\n" )
} else {
fmt.Printf("a 不小于 20\n" )
}
fmt.Printf("a 的值为 : %d\n", a)
}

以上代码执行结果为:

a 不小于 20
a 的值为 : 100

3 Goif语句嵌套形式如下:

阶梯嵌套形式
if 布尔表达式 1 {
/* 在布尔表达式为 true 时执行 */
} else if 布尔表达式 2 {
/* 在布尔表达式 2 true 时执行 该位置可以多层
嵌套 */
} else if 布尔表达式 3 {
/* 在布尔表达式 3 true 时执行 该位
置可以多层嵌套 */
} else if 布尔表达式 4 {
/* 在布尔
表达式 4 true 时执行 该位置可以多层嵌套 */
} else {
/*
布尔表达式 2 false 时执行 */
}
if ...else... 的多层嵌套,建议嵌套的深度不要超过四层。
Go 语言 switch 多分支语句
switch 语句用于基于不同条件执行不同动作,每一个 case 分支都是
唯一的,从上直下逐一测试,
直到匹配为止。
switch 语句执行的过程从上至下,直到找到匹配项,匹配项后面也
需要再加 break
语法
Go 编程语言中 switch 语句的语法如下:
switch var {
case val1 :
...
case val2 :
...
default:
...
}
变量 var1 可以是任何类型,而 val1 val2 则可以是同类型的任意
值。类型不被局限于常量或整数,
但必须是相同的类型;或者最终结果为相同类型的表达式。
您可以同时测试多个可能符合条件的值,使用逗号分割它们,例如:
case val1, val2, val3
实例:
package main
import "fmt"
func main() {
var grade string = "B"
var marks int = 90
switch marks {
case 90: grade = "A"
case 80: grade = "B"
case 70 : grade = "C"
case 60: grade = “D”
case 50: grade ="E"
default: grade = "F"
}
switch {
case grade == "A" :
fmt.Printf("优秀!\n" )
case grade == "B", grade == "C" :
fmt.Printf("良好\n" )
case grade == "D" :
fmt.Printf("及格\n" )
case grade == "E":
fmt.Printf("不及格\n" )
default:
fmt.Printf("差\n" )
}
fmt.Printf("你的等级是 %s\n", grade )
}
以上代码执行结果为:
优秀!
你的等级是 A
switch 语句还可以被用于 type-switch 来判断某个 interface 变量中实
际存储的变量类型。
Type Switch 语法格式如下:
switch x.(type) {
case type:
statement(s)
case type:
statement(s)
/* 你可以定义任意个数的case */
default: /* 可选 */
statement(s)
}
实例
package main
import "fmt"
func main() {
var x int
x = 100
switch i := x.(type) {
case nil:
fmt.Printf(" x 的类型 :%T",i)
case int:
fmt.Printf("x 是 int 型")
case float64:
fmt.Printf("x 是 float64 型")
case func(int) float64:
fmt.Printf("x 是 func(int) 型")
case bool, string:
fmt.Printf("x 是 bool 或 string 型" )
default:
fmt.Printf("未知型")
}
}
以上代码执行结果为:
x 的类型 :<nil>
补充:
fallthrough 是配合 switch 使用的, golang 里面每个 case 默认都有一个
break
fallthrough 可以取消这个默认的 break, 并且执行下一个 case 而不用判断
下个 case
如果没有 case 会执行 default 的内容。
比如:
package main
import (
"fmt"
)
func main() {
a := 2
switch a {
case 1:
fmt.Println("a=1")
case 2:
fmt.Println("a=2")
fallthrough
case 3:
fmt.Println("a=3")
fallthrough
case 4:
fmt.Println("a=4")
fallthrough
default:
fmt.Println("default")
}
}
执行结果:
a=2
a=3
a=4
default
http://www.xdnf.cn/news/7155.html

相关文章:

  • LabVIEW汽车CAN总线检测系统开发
  • C++.备考知识点
  • Milvus向量数据库
  • Apache Spark:大数据处理与分析的统一引擎
  • iOS 内存分区
  • 聚类算法K-means和Dbscan的对比
  • Blender建小房子流程
  • 符合Python风格的对象(再谈向量类)
  • Adapter适配器模式
  • 10.13 LangChain工具调用实战:@tool装饰器+小样本提示,日处理10w+调用秘籍
  • inverse-design-of-grating-coupler-3d
  • 大模型在胫骨平台骨折预测及治疗方案制定中的应用研究
  • linux下的 xargs命令使用详解
  • GC全场景分析
  • tensorflow图像分类预测
  • matlab分段函数
  • 第二章:安卓端启动流程详解与疑难杂症调试手册
  • Open CASCADE学习|几何体切片处理:OpenMP与OSD_Parallel并行方案深度解析
  • 【Linux】简易版Shell实现(附源码)
  • 1.QPushBotton 以及 对象树
  • Redis学习打卡-Day3-分布式ID生成策略、分布式锁
  • 【Bluedroid】蓝牙HID DEVICE错误报告处理全流程源码解析
  • 从坏道扫描到错误修复:HD Tune实战指南
  • 学习黑客Active Directory 入门指南(三)
  • 07 负载均衡
  • 使用Next.js优化静态网站:以书法字体生成器为例
  • 老旧设备升级利器:Modbus TCP转 Profinet让能效监控更智能
  • 计算机图形学中MVP变换的理论推导
  • 创建型:单例模式
  • 【Retinanet】训练自己的数据集