gpt4 book ai didi

go - 嵌套开关在golang中合法吗?

转载 作者:数据小太阳 更新时间:2023-10-29 03:31:35 26 4
gpt4 key购买 nike

我希望golang语法可以是耐时间的(意思是如果我现在写代码,10年后语法仍然有效)

            switch strings.ToLower(firstCommand) {
default:
fmt.Println("Default 1st Nest")

case "c":
fmt.Println("C CREATE")
fallthrough
case "u":
fmt.Println("U UPDATE")
fallthrough
case "d":
fmt.Println("D DELETE")
dosomething()

switch strings.ToLower(secondCommand) {
default:
fmt.Println("Default 2nd Nest")

case "a":
donothing()

}
}

上面的代码语法合法吗?我是说,它经得起时间的考验吗?否则,还有什么更好的方法来写这个?

最佳答案

阅读go编程语言规范、go 1兼容性保证和go 2规划。
The Go Programming Language Specification
Blocks
“switch”或“select”语句中的每个子句都充当隐式
街区。
Switch statements
“switch”语句提供多路执行。表达式或类型
将说明符与“开关”中的“cases”进行比较,以确定
执行哪个分支。
Go 1 and the Future of Go Programs
按照go 1规范编写的程序将

那个规格。在某些不确定点上,go 2规范可能
起来吧,但在那之前,今天有效的程序应该
继续工作,即使Go 1的未来“点”版本出现(Go
1.1、1.2等)。
The Go Blog: Toward Go 2
这是我(罗斯考克斯)今天在2017年地鼠大会上的演讲稿,
为整个围棋社区的帮助,我们讨论和计划围棋2。
最后,我们将如何运送和交付go 2?
我认为最好的计划是把向后兼容的部件
作为Go 1发行版的一部分,按功能递增
序列。
一旦所有向后兼容的工作都完成了,比如说Go1.20,那么
我们可以在Go2.0中进行向后不兼容的更改。
这些都是推测性的,我只是
上面提到的是粗略估计的占位符,但是我想
很明显我们不会放弃第一回合,事实上我们会
尽可能地向前走。
编写并测试概念验证程序。例如,

package main

import (
"fmt"
"strings"
)

func dosomething() {}

func donothing() {}

func main() {
var firstCommand, secondCommand string
switch strings.ToLower(firstCommand) {
default:
fmt.Println("Default 1st Nest")
case "c":
fmt.Println("C CREATE")
fallthrough
case "u":
fmt.Println("U UPDATE")
fallthrough
case "d":
fmt.Println("D DELETE")
dosomething()

switch strings.ToLower(secondCommand) {
default:
fmt.Println("Default 2nd Nest")
case "a":
donothing()
}
}
}

游乐场: https://play.golang.org/p/Q1ZdYqeNk67
输出:
Default 1st Nest

现在,你有一个权威的答案。

关于go - 嵌套开关在golang中合法吗? ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51244627/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com