কীভাবে একটি বোলে একটি স্ট্রিংয়ে রূপান্তর করবেন?


93

আমি একটি রূপান্তর করার চেষ্টা করছি boolনামক isExistএকটি থেকে string( trueবা falseব্যবহারের মাধ্যমে) string(isExist)কিন্তু এটা না হবে। গো-তে এটি করার অলঙ্কৃত উপায় কী?


strconv.FormatBool(t)true"সত্য" এ সেট করতে। strconv.ParseBool("true")"সত্য" সেট করতে trueস্ট্যাকওভারফ্লো . com/a/62740786/12817546 দেখুন ।
টম এল

উত্তর:


164

strconv প্যাকেজটি ব্যবহার করুন

ডকস

strconv.FormatBool(v)

ফানক ফর্ম্যাটবুল (বি বুল) স্ট্রিং ফর্ম্যাটবুল
বি এর মান অনুসারে "সত্য" বা "মিথ্যা" প্রদান করে


24

দুটি প্রধান বিকল্প হ'ল:

  1. strconv.FormatBool(bool) string
  2. 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

9

আপনি এটির 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"
}

9

fmt.Sprintf("%v", isExist)আপনি প্রায় সমস্ত প্রকারের মতোই ব্যবহার করুন ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.