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.