আমি একটি রূপান্তর করার চেষ্টা করছি bool
নামক isExist
একটি থেকে string
( true
বা false
ব্যবহারের মাধ্যমে) string(isExist)
কিন্তু এটা না হবে। গো-তে এটি করার অলঙ্কৃত উপায় কী?
উত্তর:
দুটি প্রধান বিকল্প হ'ল:
strconv.FormatBool(bool) string
fmt.Sprintf(string, bool) string
সঙ্গে "%t"
বা "%v"
formatters।লক্ষ্য করুন strconv.FormatBool(...)
হয় যথেষ্ট তুলনায় দ্রুততর fmt.Sprintf(...)
নিম্নলিখিত benchmarks দ্বারা প্রদর্শিত হিসাবে:
func Benchmark_StrconvFormatBool(b *testing.B) {
for i := 0; i < b.N; i++ {
strconv.FormatBool(true) // => "true"
strconv.FormatBool(false) // => "false"
}
}
func Benchmark_FmtSprintfT(b *testing.B) {
for i := 0; i < b.N; i++ {
fmt.Sprintf("%t", true) // => "true"
fmt.Sprintf("%t", false) // => "false"
}
}
func Benchmark_FmtSprintfV(b *testing.B) {
for i := 0; i < b.N; i++ {
fmt.Sprintf("%v", true) // => "true"
fmt.Sprintf("%v", false) // => "false"
}
}
হিসাবে চালান:
$ go test -bench=. ./boolstr_test.go
goos: darwin
goarch: amd64
Benchmark_StrconvFormatBool-8 2000000000 0.30 ns/op
Benchmark_FmtSprintfT-8 10000000 130 ns/op
Benchmark_FmtSprintfV-8 10000000 130 ns/op
PASS
ok command-line-arguments 3.531s
আপনি এটির strconv.FormatBool
মতো ব্যবহার করতে পারেন :
package main
import "fmt"
import "strconv"
func main() {
isExist := true
str := strconv.FormatBool(isExist)
fmt.Println(str) //true
fmt.Printf("%q\n", str) //"true"
}
অথবা আপনি এটি ব্যবহার করতে পারেন fmt.Sprint
:
package main
import "fmt"
func main() {
isExist := true
str := fmt.Sprint(isExist)
fmt.Println(str) //true
fmt.Printf("%q\n", str) //"true"
}
বা লিখুন strconv.FormatBool
:
// FormatBool returns "true" or "false" according to the value of b
func FormatBool(b bool) string {
if b {
return "true"
}
return "false"
}
strconv.FormatBool(t)
true
"সত্য" এ সেট করতে।strconv.ParseBool("true")
"সত্য" সেট করতেtrue
। স্ট্যাকওভারফ্লো . com/a/62740786/12817546 দেখুন ।