자료형의 종류
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)도 문자열로 인식) |
("문자열" ) | 이스케이프 시퀀스 같은 특수 문자는 특별한 의미로 해석되 수행한다. |