Sobes.tech
Junior

Jak převést řetězec na celé číslo a naopak?

sobes.tech AI

Odpověď od AI

Pro převod řetězce na celé číslo se používá balíček strconv, funkce Atoi nebo ParseInt. Pro převod celého čísla na řetězec se také používá balíček strconv, funkce Itoa nebo FormatInt.

import "strconv"

func main() {
	// Převod řetězce na číslo
	strNum := "123"
	intNum, err := strconv.Atoi(strNum) // Atoi vrací int a error
	if err != nil {
		// zpracování chyby
	}

	intNum64, err := strconv.ParseInt("456", 10, 64) // ParseInt vrací int64, základ, velikost v bitech
	if err != nil {
		// zpracování chyby
	}

	// Převod čísla na řetězec
	numToStr := 789
	strResult := strconv.Itoa(numToStr) // Itoa vrací string

	num64ToStr := int64(1011)
	strResult64 := strconv.FormatInt(num64ToStr, 10) // FormatInt vrací string, základ
}

Hlavní funkce:

Funkce Popis Vrácená hodnota Balíček
Atoi(s string) Převádí řetězec na desetinné celé číslo. (int, error) strconv
ParseInt(s string, base int, bitSize int) Převádí řetězec na celé číslo s danou základem a velikostí v bitech. (int64, error) strconv
Itoa(i int) Převádí desetinné celé číslo na řetězec. string strconv
FormatInt(i int64, base int) Převádí celé číslo s danou velikostí v bitech na řetězec s danou základem. string strconv

Atoi je pohodlná zkratka pro ParseInt(s, 10, 0) s výsledkem převedeným na int. Itoa je zkratka pro FormatInt(int64(i), 10).

Při převodu řetězce na číslo je důležité zpracovat chyby, protože řetězec může obsahovat nečíselné znaky nebo překročit velikost datového typu.