Go语句与表达式深度解析:全案例手册

这篇具有很好参考价值的文章主要介绍了Go语句与表达式深度解析:全案例手册。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

关注公众号【TechLeadCloud】,分享互联网架构、云服务技术的全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。

Go语句与表达式深度解析:全案例手册

语句

语句是Go编程语言中完成特定操作的单个逻辑指令。语句是组成程序的基本单元,它们可以控制程序流程、进行赋值、声明变量等。

1. 声明语句

1.1 变量声明

用于定义一个或多个变量,但不一定要赋值。

举例

var age int
var name, address string

1.2 常量声明

定义一个或多个常量值。

举例

const PI = 3.14
const greeting = "Hello, Go!"

2. 赋值语句

用于给已声明的变量分配新的值。

举例

x := 10
y = x + 5
a, b := 20, 30

3. 控制流语句

3.1 条件语句

if语句

基于某个条件来执行代码块。

举例

if x > y {
    fmt.Println("x is greater than y")
} else if x < y {
    fmt.Println("x is less than y")
} else {
    fmt.Println("x is equal to y")
}

switch语句

基于一个表达式或值来执行多个代码块中的一个。

举例

switch grade {
case "A":
    fmt.Println("Excellent!")
case "B":
    fmt.Println("Good")
default:
    fmt.Println("Passed")
}

3.2 循环语句

for语句

用于重复执行某段代码。

举例

for i := 0; i < 10; i++ {
    fmt.Println(i)
}

for _, value := range array {
    fmt.Println(value)
}

3.3 跳转语句

break语句

用于中断当前循环。

举例

for i := 0; i < 10; i++ {
    if i == 5 {
        break
    }
    fmt.Println(i)
}

continue语句

跳过当前迭代,并继续下一个迭代。

举例

for i := 0; i < 10; i++ {
    if i%2 == 0 {
        continue
    }
    fmt.Println(i)
}

return语句

从函数中返回特定值。

举例

func add(a int, b int) int {
    return a + b
}

goto语句

跳转到指定的标签。

举例

for i := 0; i < 10; i++ {
    if i == 5 {
        goto end
    }
    fmt.Println(i)
end:
}

4. 其他语句

4.1 defer语句

确保在函数结束前执行某个语句。

举例

func printFile() {
    file, err := os.Open("file.txt")
    if err != nil {
        panic(err)
    }
    defer file.Close()
    
    // Do file operations...
}

4.2 go语句

在新的goroutine中执行函数调用。

举例

go func() {
    fmt.Println("Executing in a new goroutine")
}()

实战案例

语句 语句样例
变量声明 var age intvar name, address stringvar x, y int = 3, 4var active boolvar salary = 50000
常量声明 const PI = 3.14const greeting = "Hello, Go!"const active = falseconst daysInWeek = 7const lightSpeed = 299792458
赋值语句 x := 10y = x + 5a, b := 20, 30name = "Alice"isActive := true
if语句 if x > 10 { ... }if x > 10 && y < 5 { ... }if active { ... }if name := getName(); name != "" { ... }if age > 18 { ... } else { ... }
switch语句 switch x { ... }switch { case x > 10: ... }switch day { case "Monday": ... }switch n := 4; n { ... }switch y.(type) { ... }
for语句 for i := 0; i < 5; i++ { ... }for i, v := range arr { ... }for x > 5 { ... }for key, val := range mapData { ... }for _, char := range str { ... }
break语句 for { if condition { break } }switch { case x: if y { break } }for x > 10 { ...; break; ... }label: for { ...; break label; ... }for i := 0; i < 10; i++ { if i == 5 { break } }
continue语句 for i := 0; i < 10; i++ { if i%2 == 0 { continue } }for _, v := range data { if v == nil { continue } }for x > 0 { ...; if condition { continue } ... }for { if !isValid(data) { continue } ... }for idx, value := range items { if value == "" { continue } }
return语句 func add(a, b int) int { return a + b }func name() string { return "Alice" }func getDetails() (string, int) { return "Alice", 30 }func isActive() bool { ...; return false }func calculate() float64 { ...; return result }
goto语句 label1: for { ...; if x > 5 { goto label1 } }label2: fmt.Println("Start"); ...; goto label2if condition { goto errorHandling } ... errorHandling: ...if !isValid { goto cleanup } ... cleanup: ...
defer语句 file, _ := os.Open("file.txt"); defer file.Close()mutex.Lock(); defer mutex.Unlock()defer fmt.Println("Finished!")conn.Connect(); defer conn.Disconnect()reader := openReader(); defer reader.Close()
go语句 go fmt.Println("Running in goroutine")go process(data)go func(val int) { ... }(x)go startServer()go handleRequest(request)

表达式介绍、详解、举例

在编程中,表达式是一个结构,通过某种方式组合了变量、常量和操作符,并且可以被评估为某个值。在Go中,表达式根据所包含的内容和结果的不同,可以有多种形式。

1. 基础表达式

1.1 字面量

字面量是一个表示固定值的表达式。

举例

42       // 整型字面量
3.14     // 浮点字面量
true     // 布尔字面量
"Hello"  // 字符串字面量

1.2 变量和常量

变量和常量是预先定义的,具有特定名称和值的实体。

举例

const PI = 3.14
var name = "Go"

2. 复合表达式

2.1 算术表达式

这些表达式使用算术运算符,如+-*/%

举例

a := 5
b := 2
sum := a + b        // 结果:7
difference := a - b // 结果:3
product := a * b    // 结果:10
quotient := a / b   // 结果:2
remainder := a % b  // 结果:1

2.2 关系表达式

关系表达式评估为布尔值,常用的关系运算符有==!=<<=>>=

举例

x := 5
y := 3
result1 := x == y  // 结果:false
result2 := x > y   // 结果:true

2.3 逻辑表达式

逻辑表达式用于组合多个布尔表达式,常用的逻辑运算符有&&||!

举例

a := true
b := false
result1 := a && b  // 结果:false
result2 := a || b  // 结果:true
result3 := !a     // 结果:false

2.4 赋值表达式

赋值表达式给变量赋值,并返回该值。

举例

x := 10           // 使用 := 进行赋值
y = x + 5         // 使用 = 进行赋值

3. 函数调用表达式

函数调用返回函数的返回值。

举例

func add(a int, b int) int {
    return a + b
}

result := add(5, 3)  // 结果:8

4. 类型转换表达式

这些表达式将值从一个类型转换为另一个类型。

举例

x := 5.8
y := int(x)  // 结果:5

实战案例

语句 语句样例
变量声明 var age intvar name, address stringvar x, y int = 3, 4var active boolvar salary = 50000
常量声明 const PI = 3.14const greeting = "Hello, Go!"const active = falseconst daysInWeek = 7const lightSpeed = 299792458
赋值语句 x := 10y = x + 5a, b := 20, 30name = "Alice"isActive := true
if语句 if x > 10 { ... }if x > 10 && y < 5 { ... }if active { ... }if name := getName(); name != "" { ... }if age > 18 { ... } else { ... }
switch语句 switch x { ... }switch { case x > 10: ... }switch day { case "Monday": ... }switch n := 4; n { ... }switch y.(type) { ... }
for语句 for i := 0; i < 5; i++ { ... }for i, v := range arr { ... }for x > 5 { ... }for key, val := range mapData { ... }for _, char := range str { ... }
break语句 for { if condition { break } }switch { case x: if y { break } }for x > 10 { ...; break; ... }label: for { ...; break label; ... }for i := 0; i < 10; i++ { if i == 5 { break } }
continue语句 for i := 0; i < 10; i++ { if i%2 == 0 { continue } }for _, v := range data { if v == nil { continue } }for x > 0 { ...; if condition { continue } ... }for { if !isValid(data) { continue } ... }for idx, value := range items { if value == "" { continue } }
return语句 func add(a, b int) int { return a + b }func name() string { return "Alice" }func getDetails() (string, int) { return "Alice", 30 }func isActive() bool { ...; return false }func calculate() float64 { ...; return result }
goto语句 label1: for { ...; if x > 5 { goto label1 } }label2: fmt.Println("Start"); ...; goto label2if condition { goto errorHandling } ... errorHandling: ...if !isValid { goto cleanup } ... cleanup: ...
defer语句 file, _ := os.Open("file.txt"); defer file.Close()mutex.Lock(); defer mutex.Unlock()defer fmt.Println("Finished!")conn.Connect(); defer conn.Disconnect()reader := openReader(); defer reader.Close()
go语句 go fmt.Println("Running in goroutine")go process(data)go func(val int) { ... }(x)go startServer()go handleRequest(request)

关注公众号【TechLeadCloud】,分享互联网架构、云服务技术的全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。

Go语句与表达式深度解析:全案例手册

如有帮助,请多关注
个人微信公众号:【TechLeadCloud】分享AI与云服务研发的全维度知识,谈谈我作为TechLead对技术的独特洞察。
TeahLead KrisChang,10+年的互联网和人工智能从业经验,10年+技术和业务团队管理经验,同济软件工程本科,复旦工程管理硕士,阿里云认证云服务资深架构师,上亿营收AI产品业务负责人。文章来源地址https://www.toymoban.com/news/detail-707774.html

到了这里,关于Go语句与表达式深度解析:全案例手册的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Rust-语句和表达式

    Rust中if-else表达式的作用是实现条件分支。if-else表达式的构成方式为:以if开头,后面跟上条件表达式,后续是结果语句块,最后是可选的else块。条件表达式的类型必须是bool。 if-else结构还可以当表达式使用 在Rust中,使用loop表示一个无限死循环。示例如下: 我们可以

    2024年01月16日
    浏览(58)
  • JS正则表达式:常用正则手册/RegExp/正则积累

    一、正则基础语法 JavaScript 正则表达式 | 菜鸟教程 JS正则表达式语法大全(非常详细) 二、使用场景 2.1、 校验中国大陆手机号的正则表达式 正则 解释 序号 正则 解释 1 ^1 以数字 1 开头 2 [3456789] 第二位可以是 3、4、5、6、7、8、9 中的任意一个 3 d{9} 后面是 9 个数字 示例代码

    2024年02月14日
    浏览(50)
  • 深入理解Rust语句和表达式

       团队博客: 汽车电子社区   语句会执行一些操作但是不会返回一个值,而表达式会在求值后返回一个值,因此在上述函数体的三行代码中,前两行是语句,最后一行是表达式。   以上都是语句,它们完成了一个具体的操作,但是并没有返回值,因此是语句。   由

    2024年01月23日
    浏览(50)
  • sh 脚本循环语句和正则表达式

    目录 1、循环语句 1、for 2、while 3、until 2、正则表达式 1、元字符 2、表示次数 3、位置锚定 4、分组 5、扩展正则表达式 循环含义 将某代码段重复运行多次,通常有进入循环的条件和退出循环的条件 重复运行次数 循环次数事先已知 循环次数事先未知 for 为 已知循环数 相对于

    2024年02月12日
    浏览(40)
  • go 正则表达式

    A regular expression is a useful feature in a programming language to check whether or not the string contains the desired value. It can not only check but also extract the data from the string. In this post, we’ll go through the basic usage of regexp . Let’s start with an easy example. The first one only checks if the value is contained in a string. reg

    2024年02月11日
    浏览(40)
  • 030、SQL语句之数据类型与表达式

    类型 存储空间 最小值(有符号/无符号) 最大值(有符号/无符号) TINYINT 1 -128 / 0 127 / 255 SMALLINT 2 -32768 / 0 32767 / 65535 MEDIUMINT 3 -8388608 / 0 8388607 / 16777215 INT 4 -2147483648 / 0 BIGINT 8 -9223372036854775808 / 0 9223372036854775807 / 18446744073709551615 注意unsigned: 不允许负数 用于精确数值:整数、小数或两

    2024年02月13日
    浏览(47)
  • GO学习笔记之表达式

    Go语言仅25个保留(keyword),这是最常见的宣传语,虽不是主流语言中最少的,但也确实体现了Go语法规则的简洁性。保留不能用作常量、变量、函数名,以及结构字段等标识符。 相比在更新版本中不停添加新语言功能,我更喜欢简单的语言设计。某些功能可通

    2024年02月08日
    浏览(32)
  • 【算法基础】java基础——基本结构、数据类型、表达式、语句

    Java程序的基本结构:         一段Java程序或者一个静态库,会用到下面7种语法         1、原始数据类型:在计算机程序中精确到定义整数、浮点数、布尔值等         2、语句:通过创建变量并对其赋值,它们能够被组合为类似数学公式定义的表达式         3、数组  

    2024年01月16日
    浏览(44)
  • Golang通过栈实现表达式运算(中缀表达式转后缀表达式解析语法)

    需求背景:将string表达式数组 [title == AUSU ( header == Wecome || brand != AC68U )] 解析并使用ES查询得到运算结果。 分析:带有括号的表达式,需要根据优先级解析,可将中缀表达式转换为后缀表达式,去除括号

    2024年02月14日
    浏览(50)
  • Go中常用的表单验证(正则表达式)

     对于性能要求很高的用户来说,这是一个老生常谈的问题了,他们认为应该尽量避免使用正则表达式,因为使用正则表达式的速度会比较慢。但是在目前机器性能那么强劲的情况下,对于这种简单的正则表达式效率和类型转换函数是没有什么差别的。如果你对正则表达式很

    2024年02月13日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包