Sobes.tech
Junior

Jak zamienić ciąg znaków na liczbę całkowitą i odwrotnie?

sobes.tech AI

Odpowiedź od AI

Aby przekonwertować łańcuch na liczbę całkowitą, używa się pakietu strconv, funkcji Atoi lub ParseInt. Aby przekonwertować liczbę całkowitą na łańcuch, również używa się pakietu strconv, funkcji Itoa lub FormatInt.

import "strconv"

func main() {
	// Konwersja łańcucha na liczbę
	strNum := "123"
	intNum, err := strconv.Atoi(strNum) // Atoi zwraca int i error
	if err != nil {
		// obsługa błędu
	}

	intNum64, err := strconv.ParseInt("456", 10, 64) // ParseInt zwraca int64, bazę, rozmiar w bitach
	if err != nil {
		// obsługa błędu
	}

	// Konwersja liczby na łańcuch
	numToStr := 789
	strResult := strconv.Itoa(numToStr) // Itoa zwraca string

	num64ToStr := int64(1011)
	strResult64 := strconv.FormatInt(num64ToStr, 10) // FormatInt zwraca string, bazę
}

Główne funkcje:

Funkcja Opis Wartość zwracana Pakiet
Atoi(s string) Konwertuje łańcuch na liczbę całkowitą dziesiętną. (int, error) strconv
ParseInt(s string, base int, bitSize int) Konwertuje łańcuch na liczbę całkowitą o zadanej bazie i rozmiarze w bitach. (int64, error) strconv
Itoa(i int) Konwertuje liczbę całkowitą dziesiętną na łańcuch. string strconv
FormatInt(i int64, base int) Konwertuje liczbę całkowitą o zadanym rozmiarze w bitach na łańcuch z zadanym podstawieniem. string strconv

Atoi jest wygodnym skrótem dla ParseInt(s, 10, 0) z konwersją wyniku na int. Itoa jest skrótem dla FormatInt(int64(i), 10).

Podczas konwersji łańcucha na liczbę ważne jest obsługiwanie błędów, ponieważ łańcuch może zawierać znaki nie numeryczne lub przekraczać rozmiar typu danych.