[Golang] 자료형 2

이정훈·2023년 5월 22일
0

Golang

목록 보기
8/24
post-thumbnail

문자열의 표현

  • Go언어에서는 문자열을 표현하는 데 두 가지 방법이 있다.
  • + 연산자는 숫자 뿐만이 아니라 문자열도 합할 수 있다! 아래 두 방법 모두 +연산자를 이용해 표현할 수 있다.

Back Quote('문자열')

  • 모양이 이용부호('')와 비슷해서 혼동할 수 있지만 다른 기호이다.
  • Back Quote로 둘러 싸인 문자열은 Raw String Literal이라고 부른다.
  • 쉽게 말해, 이 안에 있는 문자열은 어느 기호든 문자열 자체로 인식되는 Raw String값이라는 것!
  • 예를 들어 개행의 의미인 \n이 Back Quote에 있으면 개행 기능이 되지 않고 문자열 자체로 출력이 된다.

이중인용부호("")

  • Interpreterd String Iiteral 쉽게 말해, 안에 있는 문자열에 이스케이프 시퀀스같은 문자열들을 특별한 의미로 해석돼 그 기능을 수행한다는 것!
  • 이중인용부호를 사용할 시에는 복수라인에 걸쳐 쓸 수 없다.
  • 코딩을 할 떄 아무리 엔터를 치고 길게 쳐도 한 줄에 표현된다는 뜻!
  • 하지만 \n과 같은 기호가 있으면 개행의 의미로 해석돼 여러 라인에 걸쳐 쓸 수 있다.

코드

package main

import "fmt"

func main() {
	// Raw String Literal. 복수라인.
	var rawLiteral string = `golang 배워봅시다요! \n Golang`

	// Interpreted String Literal
	var interLiteral string = "golang 배워봅시다요! \nGolang"

	rawLiteral2 := `안녕 \n`
	interLiteral2 := "하이 \n방가"
	plusString := "안녕하세요 " + "hey\n" + "Golang"

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

출력

golang 배워봅시다요! \n Golang

golang 배워봅시다요! 
Golang

안녕 \n

하이 
방가

안녕하세요 hey
Golang

자료형의 변환

  • int형으로 표현되어 있는 데이터 표현방식을 float32형으로 바꾸거나, int형으로 표현되어 있는 데이터의 표현방식을 uint형으로 바꾸는 것이 바로 '자료형의 변환'
  • 즉, 자료형의 변환이라는 것은 데이터의 표현방식을 바꾸는 것, 이러한 자료형의 변환은 다른 언어들을 비추어 보았을 때 두 종류가 있다.
    • 자동 형 변환 (묵시적 형 변환)
    • 강제 형 변환 (명시적 형 변환)
  • Go 언어에서는 형 변환을 할 때 변환을 명시적으로 지정해주어야한다!!
  • 예을 들어 float32에서 uint로 변환할 때, 암묵적 변환은 일어나지 않으므로 uint(변수이름)과 같이 반드시 변환을 지정! 만약 없다면 런타임 에러가 발생 할 수 있다!

코드

package main

import "fmt"

func main() {
	var num int = 16
	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)
}

출력

16
16 16
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)
}
  • 런타임 에러 발생, 연산식과 결과값과 그것을 저장하려는 변수의 자료형이 다르기 떄문!
  • Go언어는 자동으로 형 변환이 되지 않는다!
  • 연산 결과값의 자료형과 피연산자의 자료형이 일치해야한다!

코드

package main

import "fmt"

func main() {
	var num1, num2 int = 3, 4
	var num3 float32 = float32(num1)
	var num4 float32 = float32(num2)

	var result float32 = num3 / num4

	fmt.Printf("%f", result)
}

출력

0.750000

한 눈에 끝내는 고랭 기초 !!

profile
싱숭생숭늉

0개의 댓글