반응형

1. Go lang 에서 다양한 데이터 타입을 변환하기

변수를 다루다보면 문자(str) -> 숫자(int), 숫자(int) -> 문자(str)로의 타입 변환은 꽤 빈번하게 발생합니다. 이를 위해 go standard pacakge "strconv" 가 제공되고 있습니다. 

 

※ 타입 확인은 reflect  package 가 제공되고 있습니다.

 

2. 사용방법

Example. 문자열 - 숫자열 변환(str to int / int to str / float to str)

 imInt :  10 int 
 문자열로 바꾸면 :  10 string

 imFloat : :  5.5E+00 float64 
 문자열로 바꾸면 :  5.5E+00 string

 imIntStr :  10000 string 
 숫자로 바꾸면 :  10000 int

Int와 Str간의 변형에는 strconv.Itoa or Atoi를 사용하시면 됩니다. (I to A , A to I)

float형의 변형법이 약간 다른데 strconv.FormatFloat은 (input, format fmt, prec, digit) 4가지 인수를 받습니다.  

format fmt 는 아래 목록을 참고해서 넣으시면 되고, prec은 -1 써주시면 자동으로 최적값을 찾아줍니다.

// The format fmt is one of
// 'b' (-ddddp±ddd, a binary exponent),
// 'e' (-d.dddde±dd, a decimal exponent),
// 'E' (-d.ddddE±dd, a decimal exponent),
// 'f' (-ddd.dddd, no exponent),
// 'g' ('e' for large exponents, 'f' otherwise),
// 'G' ('E' for large exponents, 'f' otherwise),
// 'x' (-0xd.ddddp±ddd, a hexadecimal fraction and binary exponent), or
// 'X' (-0Xd.ddddP±ddd, a hexadecimal fraction and binary exponent).

 

예제는 가장 사용량이 많은 문자-숫자 변환만 다뤘지만 다른 형변환도 당연히 가능합니다. 다른 형 변환은 아래 링크를 확인하시면 됩니다.

https://golang.org/pkg/strconv/#FormatFloat

 

strconv - The Go Programming Language

package main import ( "fmt" "strconv" ) func main() { v := "3.1415926535" if s, err := strconv.ParseFloat(v, 32); err == nil { fmt.Printf("%T, %v\n", s, s) } if s, err := strconv.ParseFloat(v, 64); err == nil { fmt.Printf("%T, %v\n", s, s) } if s, err := s

golang.org

 

반응형
복사했습니다!