강좌 & 팁
글 수 2,412
2015.09.04 19:41:02 (*.39.166.80)
41138
1. Println 줄바꿈
c 언어에서 아래와 같은 printf 문은 세라인 모두 문제가 없다.
------------------- 예제 --------------------
void main (void)
{
int a=10;
printf("aa = %d\n",a);
printf("aaa = %d\n"
,a);
printf("aaaa = %d\n",
a);
}
--------------------------------------------
printf 문의 줄바꿈 위치가 어디든 상관이 없다는 뜻이다.
실행을 해보면
aa = 10
aaa = 10
aaaa = 10
이러한 결과가 나온다.
하지만 go 언어에서 이와 같은 결과가 나온다.
------------------------- 예제----------------------
func main() {
fmt.Printf("a = %g\n", math.Nextafter(2, 3))
fmt.Printf("aa = %g\n",
math.Nextafter(2, 3))
fmt.Printf("aaa = %g\n"
, math.Nextafter(2, 3))
}
----------------------------------------------------
(# command-line-arguments/tmp/sandbox286755623/main.go:12: syntax error: unexpected semicolon or newline, expecting )
--> 12 번째 라인은 실제 fmt.Printf.. 세번째 라인임.
얼핏 보면
fmt.Printf 문의 줄바꿈만 차이가 있을뿐 a, aa, aaa 의 값이 정상적으로 출력 될 것으로 예상되지만
마지막 printf 문에서 에러가 발생한다.
문제는 바로 줄 바꿈 의 위치이다.
, 가 반드시 줄바꿈 전에 붙어야 에러가 발생 하지 않는다.
이처럼 go 언어에서는 조금은 지랄? 맞은 줄바꿈에 관한 문법들이 정해져 있는 듯 하다.