부트스트래핑
부트스트래핑 (Bootstrapping)
컴파일러 자체가 같은 언어로 만들어지는 과정을 부트스트래핑이라고 부르는데요, 여기서는 그 과정에 딱 맞게 쓰이는 내장 함수 두 개를 소개해요. 실제 프로그램에서는 거의 쓸 일이 없지만, 구현체가 언어를 시작할 때 쓸모가 있어서 스펙에 따로 문서화해 두었어요.
출처: Go Specification
본문
현재 구현체들은 부트스트래핑 동안 쓸모 있는 내장 함수 몇 개를 제공해요. 이 함수들은 편의를 위해 문서화되어 있지만, 앞으로도 언어에 계속 남아 있으리라는 보장은 없어요. 무엇보다 이 함수들은 결과를 돌려주지 않아요.
Function Behavior
print prints all arguments; formatting of arguments is implementation-specific
println like print but prints spaces between arguments and a newline at the end
표를 보면 역할이 명확해요. print는 모든 인자를 출력하는데, 인자가 어떻게 찍힐지(형식)는 구현체마다 달라요. println은 print와 같지만, 인자 사이에 공백을 넣고 마지막에 새 줄(newline)을 하나 붙여요. 함수 이름 뒤의 ln이 line이라는 뜻이죠.
구현 제약(Implementation restriction)도 하나 짚고 넘어갈게요. print와 println은 임의의 타입을 다 받아야 할 필요는 없어요. 다만 boolean, 숫자(numeric), 문자열(string) types의 출력은 반드시 지원해야 해요.
더 알아보기
- Built-in functions — Go가 기본으로 제공하는 내장 함수 전체
- The zero value — 초기화만 하고 아무 값도 주지 않았을 때 변수가 갖는 값