Golang代码中遇到的问题如何解决
Golang代码中遇到的问题如何解决 https://play.golang.org/p/Ht1G6Ajz0wl
为什么 case (4==4) 没有输出?
package main
import "fmt"
func main() {
switch {
case 1 == 1:
fmt.Println("1 == 1")
case 2 == 2:
fmt.Println("2 == 2")
case 3 == 3:
fmt.Println("3 == 3")
case 4 == 4:
fmt.Println("4 == 4")
}
}
更多关于Golang代码中遇到的问题如何解决的实战教程也可以访问 https://www.itying.com/category-94-b0.html
谢谢 🙂
谢谢!这真的很有帮助!我觉得我要把这个保存下来
第一个正确的条件是3==3。这个条件执行后程序就会退出。
单引号应该放在哪里?
在变量周围进行赋值,就像在我的示例链接中一样
// 关于 rune 类型
好的。那行。一般来说,什么时候使用单引号呢?
因为当 case 3==3 判断为真时,switch 语句就执行完毕了。在此之后便结束执行。
是的,单引号缺失了。
https://play.golang.org/p/ihUaSa0ze4J
感谢各位先生。你们的回答都很有帮助,特别是Jayts的回答。感谢大家抽出时间。
Jayts,我尝试了f和g并很满意结果。我尝试了心跳符号但出现了类似“无效字符”的提示……不确定是否放对了位置。我把它放在这里:
var letter rune = `:heartpulse:`
你好 Cherolyn,
我亲自尝试了一下,发现直接复制粘贴我帖子中的 Unicode 心形符号是行不通的。也许需要将其作为代码引用:
var letter rune = 💗
试试这个方法。我刚才试过是有效的。
package main
import "fmt"
func main() { fmt.Println("I💗Go") }
处理 Unicode 有时可能会有点棘手。
在 Go 语言的 switch 语句中,当没有指定条件表达式(即 switch 后面没有跟变量或表达式)时,它会按顺序评估每个 case 的条件。但是,一旦某个 case 的条件为 true,程序会执行该 case 的代码块,然后立即退出整个 switch 语句,不会继续检查后续的 case。
在你的代码中:
- 第一个
case 1 == 1条件为true,因此执行fmt.Println("1 == 1"),然后退出switch。 - 后续的
case(包括4 == 4)虽然条件也为true,但不会被评估或执行。
如果你希望所有为 true 的 case 都执行,需要使用 fallthrough 语句显式地继续执行下一个 case。但注意,fallthrough 会无条件执行下一个 case 的代码,而不检查其条件。
修改后的示例,使用 fallthrough 让所有匹配的 case 执行:
package main
import "fmt"
func main() {
switch {
case 1 == 1:
fmt.Println("1 == 1")
fallthrough
case 2 == 2:
fmt.Println("2 == 2")
fallthrough
case 3 == 3:
fmt.Println("3 == 3")
fallthrough
case 4 == 4:
fmt.Println("4 == 4")
}
}
输出:
1 == 1
2 == 2
3 == 3
4 == 4
或者,如果你需要基于多个独立条件执行不同代码块,可以使用多个独立的 if 语句:
package main
import "fmt"
func main() {
if 1 == 1 {
fmt.Println("1 == 1")
}
if 2 == 2 {
fmt.Println("2 == 2")
}
if 3 == 3 {
fmt.Println("3 == 3")
}
if 4 == 4 {
fmt.Println("4 == 4")
}
}
输出:
1 == 1
2 == 2
3 == 3
4 == 4


