如何在Go中打印布尔值?

195

我们用%d来表示整数。那么布尔值的格式说明符是什么?


尝试一个代码示例:https://play.golang.org/p/RDGQEryOLP - KingRider
3
请注意,如果速度很重要,strconv.FormatBool(b)会快得多,但它的含义与原文相同。 - maerics
4个回答

271
如果您使用fmt包,请使用%t格式语法,它将为布尔变量打印truefalse
有关详细信息,请参阅包的参考文档

39
请注意,%v格式将为任何值打印一个合理的默认字符串。 - Evan Shaw
如果我尝试输入一个布尔值,任何以't'开头的值都是true,其他任何值都是false。 - Anuj Verma
包 main导入 fmt "fmt"func main(){ var flag bool fmt.Scanf("%t",&flag) fmt.Printf("%t",flag) } - Anuj Verma
1
@Anuj Verma: 当扫描输入时,fmt.Scanf 必须处理传递给它的任何字符串。 它可以正确读取值 truefalse,这是它的主要目的。 当它在输入中既没有看到 true 也没有看到 false 时,它采用另一种方式:仅获取第一个字符并返回 true(如果为 't')或 false(如果为不-'t')。 请注意,其他选项仍然可用于扫描输入的其余部分。 例如,请尝试使用 此类 代码,并检查不同输入的结果。 - ffriend

34

%t 是你的答案。

package main
import "fmt"

func main() {
   s := true
   fmt.Printf("%t", s)
}

23
使用%t将布尔值格式化为truefalse

5
这是一个与被接受答案相同但缩短了的回答,请记住如果你想回答问题,应该检查是否可以添加一些帖子中没有包含的内容。 - xKobalt

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接