go - 这个 golang 代码的输出是什么?

标签 go output

我的输出是

.\main1.go:8: 无效的标识符字符 U+200b

.\main1.go:8: 未定义: fmt.Print 中的 fmt

我什至在 go playground 上试过同样的 react 。

有人用相同的代码发布了答案“0 1 2 3”。

为什么我复制了相同的代码却得到了上面的结果。

package main

import "fmt"

func main() {
x := []string{"i","j","k","l"}
for v := range x {
  ​fmt.Print(v, " ")
  }
fmt.Println()
}

最佳答案

有两点需要注意:
首先:如果您使用简单的十六进制查看器查看源文件,您将在 fmt.Print(v, ""):
之前看到一些额外的十六进制字节 20 20 E2 80 8B
让我们删除它,现在我们有:

package main

import "fmt"

func main() {
    x := []string{"i", "j", "k", "l"}
    for v := range x {
        fmt.Print(v, " ")
    }
    fmt.Println()
}

现在的输出是:
0 1 2 3

第二个:
但通常我们使用变量名,例如 v 表示值,var named i 表示索引,
所以看起来代码需要注意:

package main

import "fmt"

func main() {
    x := []string{"i", "j", "k", "l"}
    for _, v := range x {
        fmt.Print(v, " ")
    }
    fmt.Println()
}

现在的输出是:
我 j k l

关于go - 这个 golang 代码的输出是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37486307/

相关文章:

regex - 使用正则表达式验证密码

matlab - 如何编写输出参数数量可变的匿名函数?

python - 特殊字符显示为问号

go - Golang中如何使用Openssl RSA公私钥对数据进行加解密?

go - 从带有函数的 slice 中调用函数并获取返回值

concurrency - 为什么在同一个 goroutine 中使用无缓冲 channel 会导致死锁?

output - 如果 NMDS(纯素)收敛不可能,这是否会使输出变得无用?

golang 中的正则表达式换行符和空格

c++ - 在 main 中调用构造函数,但未正确创建对象

time - Clojure 写入文件映射与 doseq