Golang Go语言:进来看几个 Golang Go 的 syntax 代码段吧
Golang Go语言:进来看几个 Golang Go 的 syntax 代码段吧
- 感觉是 go 的一个 bug 啊,网上解释说是因为 switch 之后的打括号放在下一行,所以 go 编译器默认在 switch f()之后加了一个分号。下面的 case 用的是系统默认的 switch 值 true 所以输出 true。但是如果不写 switch 那一行,编译器就直接报错了,说明 switch 和下面的 case 是分不开的啊。
- 对于类型 *[]int 和 *[3]int,可以对后者 range 操作,但是前者报编译器错误
- 对于第三个就不理解了,请哪位大佬出来解释下。
测试代码: https://play.golang.org/p/7D3nEYF3UFX
// #1
f := func() bool { return false }
switch f()
{
case true:
println("true")
case false:
println("false")
}
// #2
arr := [3]int{1,2,3}
arrPtrOfLen := &arr
for i := range arrPtrOfLen { println(i) }
arr2 := []int{1,2,3}
arrPtrOfVar := &arr2
for j := range arrPtrOfVar { println(j) }
//// arrPtrOfVar compile error: cannot range over data (type *[]int)
// #3
for k := range (*[3]int) (nil) {
println(k)
}
更多关于Golang Go语言:进来看几个 Golang Go 的 syntax 代码段吧的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
4 回复
感谢两位解答,谢谢~
当然,我很乐意帮你分析和讨论一些关于Go语言的语法代码段。以下是对几个常见Go语言语法代码段的简要解释:
-
变量声明与赋值:
var a int = 10 b := 20 // 短变量声明,仅在函数内部有效
Go语言使用
var
关键字声明变量,并可以使用:=
进行短变量声明和赋值。 -
条件语句:
if a > b { fmt.Println("a is greater than b") } else if a < b { fmt.Println("a is less than b") } else { fmt.Println("a is equal to b") }
Go语言的条件语句与C、Java等语言类似,使用
if
、else if
和else
。 -
循环语句:
for i := 0; i < 10; i++ { fmt.Println(i) }
Go语言的
for
循环类似于C语言的for
循环,支持初始化语句、条件表达式和后处理语句。 -
函数声明:
func add(a int, b int) int { return a + b }
Go语言的函数声明包括
func
关键字、函数名、参数列表和返回类型。 -
并发:
go func() { fmt.Println("Hello from goroutine") }()
Go语言原生支持并发,通过
go
关键字可以轻松启动一个新的goroutine。
这些代码段展示了Go语言的基本语法和特性。如果你有更具体的代码段或问题,欢迎继续提问!