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

时间:2019-09-16 16:08:40

标签: go

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

package main

程序

import (
    "fmt"
)

func main() {
    a := 1_00_000
    fmt.Println(a)
}

输出

100000

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

2 个答案:

答案 0 :(得分:5)

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

a := "1_00_000"
fmt.Println(a)

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

答案 1 :(得分:3)

下划线只是数字分隔符。Go1.13中引入了此新功能以提高可读性。它不会与数字一起打印。

可以使用下划线将任何数字文字的数字分开(分组),例如在1_000_000、0b_1010_011中加下划线,以使其更具可读性。

d := 9795696874578
d := 9_795_696_874_578 // thousand separators

这里强调的文字更容易阅读。