为什么在输出中忽略_(下划线)?

Sat*_*amy -1 go

我想知道该程序输出背后的原因。

package main
Run Code Online (Sandbox Code Playgroud)

程序

import (
    "fmt"
)

func main() {
    a := 1_00_000
    fmt.Println(a)
}
Run Code Online (Sandbox Code Playgroud)

输出量

100000

下划线如何在输出中被忽略。Go中此新功能的用途是什么?

Adr*_*ian 5

在输出中不会忽略它;在源代码中将其忽略。下划线是使代码中的大量文字更易于阅读的便利;文字仍然是整数,并且整数不包含下划线。当然,您总是可以使用字符串:

a := "1_00_000"
fmt.Println(a)
Run Code Online (Sandbox Code Playgroud)

下划线分隔符已添加为Go 1.13中的一项新功能:https : //golang.org/doc/go1.13#language