카테고리 없음

GO언어 기초: 자료형의 변환 & 문자열의 표현

SeaPlus 2021. 7. 3. 13:02

자료형의 종류

bool Go언어에서는 오로지 'true'와 'false'만 사용하여 할당
int 정수형(음수포함)
uint 정수형(0, 양수)
float
[float32, float64]
실수
complex
[complex64, complex128]
복소수
string 문자열
string으로 선언한 문자열 타입은 immutable 타입으로서 값을 수정할 수 없습니다.
byte(uint8) 정수(0, 양수)
rune(int32) 정수

 

 

 


자료형의 변환

package main

import "fmt"

func main() {
	var num int = 10
	var changef float32 = float32(num) //int형을 float32형으로 변환
	changei := int8(num)               //int형을 int8형으로 변환

	var str string = "goorm"
	changestr := []byte(str) //바이트 배열
	str2 := string(changestr) //바이트 배열을 다시 문자열로 변환

	fmt.Println(num)
	fmt.Println(changef, changei)

	fmt.Println(str)
	fmt.Println(changestr)
	fmt.Println(str2)
}

//////////////////////////결과//////////////////////////

10
10 10
goorm
[103 111 111 114 109]
goorm

오류사례

package main

import "fmt"

func main() {
	var num1, num2 int = 3, 4
	
	var result float32 = num1 / num2	
	
	fmt.Printf("%f", result)
}

● 위 코드는 런타임 에러가 발생한다.

=> num1과 num2의 나누기 연산인 num1/num2를 float32타입으로 형변환 하지 않았기 때문!!

정답:  var result float32 = float32( num1 / num2)

 

 


문자열의 표현

package main

import "fmt"

func main() {
	// Raw String Literal. 복수라인.
	var rawLiteral string = `바로 실행해보면서 배우는 \n Golang`

	// Interpreted String Literal
	var interLiteral string = "바로 실행해보면서 배우는 \nGolang"

	plusString := "구름 " + "EDU\n" + "Golang"

	fmt.Println(rawLiteral)
	fmt.Println()
	fmt.Println(interLiteral)
	fmt.Println()
	fmt.Println(plusString)
}



/////////////////////결과///////////////////////////////////

바로 실행해보면서 배우는 \n Golang

바로 실행해보면서 배우는 
Golang

구름 EDU
Golang
( '문자열' ) 이 안에 있는 모든 기호, 문자는 문자열 자체로 인식
 (이스케이프 시퀸스(/n)도 문자열로 인식)
("문자열" ) 이스케이프 시퀀스 같은 특수 문자는 특별한 의미로 해석되 수행한다.