[Go] #2.1 콘솔 출력 함수의 기본

[Go] #2.1 콘솔 출력 함수의 기본

강의 링크 : 한 눈에 끝내는 고랭 기초 #2 변수와 상수 - 콘솔 출력 함수의 기본


1. 콘솔 출력 함수의 기본


Go 에서의 콘솔 출력 함수에 대해서 알아보자.
C++ 의 경우 cout 에 해당하는 것으로, 주로 다음의 함수를 사용한다.

I. print, println


print()
println()

굉장히 익숙한 함수다.
처음 C 언어를 배울때가 생각난다 …
예상했듯이 printprintln 의 차이는 개행 유무다.
print 함수는 개행을 하지 않기 때문에, 개행을 하려면 마찬가지로 익숙한 이스케이프 시퀀스인 \n 을 사용해야 한다.

기본적인 함수 사용 형태는 다음과 같다.

print(출력하고자 하는 데이터)

그리고 출력 함수는 함수 내에서의 연산 식을 결과 값으로 출력하는 것이 가능하다.
즉 다음과 같이 사용할 수 있다.

println(3+5)

아래 샘플 코드가 있다.

package main

func main() {
	var num1 int = 1
	var num2 int = 2
	
	print("Hello goorm!")
	print(num1)
	print(num2)
	print(num1 + num2)
	print("Hello goorm!", num1 + num2,"\n")
	
	println("Hello goorm!")
	println(num1)
	println(num2)
	println(num1 + num2)
	println("Hello goorm!", num1 + num2)	
}

II. fmt - Print, Println, Printf


일반적으로 Go 에서의 콘솔 입출력을 위해서 fmt 패키지를 import 하는데, printprintlnfmtimport 하지 않아도 사용 가능한 기본 출력 함수이다.

fmt 에서 제공하는 입출력 함수가 더 강력한 기능을 제공한다고 하니, 앞으로는 fmt 패키지의 함수를 사용하도록 하자.

import "fmt"

위와 같이 쌍따옴표로 감싸서 import 할 수 있다.

이제부터의 출력 함수의 사용 형태는 다음과 같다.

fmt.Print(출력하고자 하는 데이터)

무엇이 바뀌었냐 하니, print 의 앞 p 가 대문자로 바뀌었음에 주의하자.
마찬가지로 Print 뿐만이 아니라 Println 도 사용할 수 있다.

그리고 Printf 함수도 있다.
이건 서식 문자를 활용하여 원하는 포맷으로 데이터를 채워서 출력하고자 할 때 사용하며, C 언어에서의 printf 와 동일한 기능을 하는 것으로 보인다.

샘플 코드를 보며 기능을 점검해보자.

package main

import "fmt"

func main() {
    var num1 int = 1
    var num2 int = 2
    
    fmt.Print("Hello goorm!", num1, num2, "\n")
    
    fmt.Println("Hello goorm!", num1, num2)
	
    fmt.Printf("num1의 값은:%d num2의 값은:%d\n", num1, num2)
}
  • 실행 결과

1

그런데 뭔가 이상하다.

실행 결과가 내 예상과 다르다…

// 내 예상
Hello goorm!12
Hello goorm!12
num1의 값은:1 num2의 값은2

3번째 줄은 예상과 동일한데, 첫 번째와 두 번째 줄의 실행 결과과 예상과 다르다.
첫 번째 함수 실행 결과(Print) ‘Hello goorm!’ 뒤에 빈 칸이 없을 거면 없고, 있을 거면 있어야 할 것 같은데 ‘1’은 바로 붙어서 오고 ‘2’는 한 칸 떨어져서 온다 …
그게 규칙인가? 싶어서 두 번째 함수 실행 결과(Println)를 보면, 이번에는 또 둘 다 한 칸씩 띄워져 있다 …
혼란스럽다.
자세한 설명은 뒤에 나온다고 하니, 일단 넘어가보자 …


© 2022. All rights reserved.