int -> string 변환 방법
1. strconv.Itoa
package main
import (
"fmt"
"strconv"
)
func main() {
var fruits [3]string
fmt.Println(fruits, len(fruits))
for i := 0; i < len(fruits); i++ {
fruits[i] = strconv.Itoa(i)
fmt.Println(i, fruits[i])
}
}
- 다른 변환 함수에 비해 제일 나은 성능을 보인다.
2. strconv.FormatInt
for i := 0; i < len(fruits); i++ {
fruits[i] = strconv.FormatInt(int64(i), 10)
fmt.Println(i, fruits[i])
}
- 두 번째 인자는 10진수를 기본으로 하는
base
파라미터. - Itoa 성능과 비슷한 수준의 성능을 보인다.
3. fmt.Sprintf / Sprint
for i := 0; i < len(fruits); i++ {
fruits[i] = fmt.Sprintf("%d", i)
fmt.Println(i, fruits[i])
}
- 위 두 함수에 비해 상대적으로 많은 성능차이를 보인다.
- 아래 벤치마킹 결과에서 처럼,
Sprint
함수는 변환 과정에서 객체할당 과정이 위 함수 보다 하나 더 많다.
BenchmarkItoa 30000000 52.6 ns/op 2 B/op 1 allocs/op
BenchmarkItoaFormatInt 30000000 52.5 ns/op 2 B/op 1 allocs/op
BenchmarkItoaSprint 5000000 254 ns/op 16 B/op 2 allocs/op
BenchmarkItoaSprintf 5000000 299 ns/op 16 B/op 2 allocs/op
출처: https://gist.github.com/evalphobia/caee1602969a640a4530
Reference
https://stackoverflow.com/questions/10105935/how-to-convert-an-int-value-to-string-in-go
반응형
'Go' 카테고리의 다른 글
Go - 슬라이스 사용법 ( cap, make, slicing, copy ) (0) | 2022.10.06 |
---|---|
Go - 배열 초기화 및 사용 방법 (0) | 2022.09.28 |
Go - 문제해결: Error loading workspace: gopls was not able to find modules in your workspace. (0) | 2022.09.27 |