strconv.ParseBool în Go

ParseBool citește true/false dintr-un text (1, t, T, TRUE, true, True și opusele); FormatBool dă „true” sau „false”.

Sintaxă
func ParseBool(str string) (bool, error)
func FormatBool(b bool) string

Ce face strconv.ParseBool

strconv.ParseBool(str) acceptă exact aceste texte: 1, t, T, TRUE, true, True pentru adevărat și 0, f, F, FALSE, false, False pentru fals. Orice altceva (inclusiv „da”, „yes” sau „tRuE”) dă eroare.

strconv.FormatBool(b) returnează "true" sau "false". Sunt folosite des pentru variabile de mediu și fișiere de configurare.

Parametri

Parametru Descriere
str La ParseBool: textul de citit.
b La FormatBool: valoarea de transformat.

Ce returnează

ParseBool: valoarea și eroarea. FormatBool: textul.

Exemple

Exemplul 1: Valori de configurare

package main

import (
	"fmt"
	"strconv"
)

func main() {
	for _, s := range []string{"true", "1", "F", "TRUE", "da", "yes", "tRuE"} {
		b, err := strconv.ParseBool(s)
		fmt.Printf("%-6q -> %-5t eroare: %v\n", s, b, err)
	}
	fmt.Println(strconv.FormatBool(10 > 3) + " și " + strconv.FormatBool(false))
}

Rezultat

"true" -> true  eroare: <nil>
"1"    -> true  eroare: <nil>
"F"    -> false eroare: <nil>
"TRUE" -> true  eroare: <nil>
"da"   -> false eroare: strconv.ParseBool: parsing "da": invalid syntax
"yes"  -> false eroare: strconv.ParseBool: parsing "yes": invalid syntax
"tRuE" -> false eroare: strconv.ParseBool: parsing "tRuE": invalid syntax
true și false

Greșeli frecvente

  • Te aștepți ca „da” sau „on” să fie acceptate. Nu sunt; dacă vrei să le accepți, verifică-le tu înainte (switch strings.ToLower(s)).
  • Ignori eroarea: pentru un text necunoscut primești false, ceea ce poate dezactiva tăcut o opțiune.

Comenzi înrudite

  • strconv.Atoi: Atoi transformă un text în număr întreg (int) și returnează eroare dacă nu se poate; Itoa face invers.
  • strconv.AppendInt: Adaugă un număr sau un bool, scris ca text, la sfârșitul unui []byte, fără să creeze un text intermediar.