Go by Example: 숫자 파싱

문자열로부터 숫자를 파싱하는건 많은 프로그램에서 기본적이지만 일반적인 작업입니다. Go에서 이를 어떻게 하는지 살펴봅시다.

package main

내장 패키지 strconv는 숫자 파싱을 제공합니다.

import "strconv"
import "fmt"
func main() {

ParseFloat를 사용할 때, 64는 얼마나 많은 비트의 정밀도를 파싱할지를 알려줍니다.

	f, _ := strconv.ParseFloat("1.234", 64)
	fmt.Println(f)

ParseInt에서, 0은 문자열로부터 베이스값을 추론함을 의미합니다. 64를 사용하려면 결괏값이 64 비트에 적합해야합니다.

	i, _ := strconv.ParseInt("123", 0, 64)
	fmt.Println(i)

ParseInt는 16진법 수를 인식합니다.

	d, _ := strconv.ParseInt("0x1c8", 0, 64)
	fmt.Println(d)

'ParseUint' 또한 사용할 수 있습니다.

	u, _ := strconv.ParseUint("789", 0, 64)
	fmt.Println(u)

Atoi는 기본적인 10진수 int 파싱을 위한 편리한 함수입니다.

	k, _ := strconv.Atoi("135")
	fmt.Println(k)

파싱 함수는 잘못된 입력값이 들어오면 에러를 반환합니다.

	_, e := strconv.Atoi("wat")
	fmt.Println(e)
}
$ go run number-parsing.go 
1.234
123
456
789
135
strconv.ParseInt: parsing "wat": invalid syntax

다음장에선 또 다른 일반적인 파싱 작업을 살펴보겠습니다: URLs

다음 예제: URL 파싱.