【发布时间】:2011-10-26 22:44:16
【问题描述】:
因为我们有 %d 用于 int。布尔值的格式说明符是什么?
【问题讨论】:
-
尝试代码示例:play.golang.org/p/RDGQEryOLP
-
请注意
strconv.FormatBool(b)is much faster,以防速度很重要。
因为我们有 %d 用于 int。布尔值的格式说明符是什么?
【问题讨论】:
strconv.FormatBool(b) is much faster,以防速度很重要。
如果你使用fmt包,你需要%t格式语法。详情请参阅包的reference。
【讨论】:
fmt.Scanf 必须以某种方式处理您传递的任何字符串。它可以正确读取值true 和false,这是它的主要目的。当它在输入中既没有看到true 也没有看到false 时,它会采用另一种方式:它只接受第一个字符并返回true,如果它是't',或者false,如果它是其他任何东西, ig不-'不'。请注意,输入的其余部分仍可用于使用其他选项进行扫描。例如,尝试such 代码并使用不同的输入检查结果。
使用%t 将布尔值格式化为true 或false。
【讨论】:
“%t”是你的答案。
package main
import "fmt"
func main() {
s := true
fmt.Printf("%t", s)
}
【讨论】:
其他一些选项:
package main
import "strconv"
func main() {
s := strconv.FormatBool(true)
println(s == "true")
}
package main
import "fmt"
func main() {
var s string
// example 1
s = fmt.Sprint(true)
println(s == "true")
// example 2
s = fmt.Sprintf("%v", true)
println(s == "true")
}
【讨论】: