Progrming관련
[Programing] 프로그래밍 언어상의 여러줄 문자열 표현(Multiple line string literal in programming language)
starland
2009. 12. 8. 00:56
반응형
잘정리된 글이 있어 퍼온다.
대부분의 언어들은 여러줄의 문자열 리터럴을 간단히 쓰기 위한 문법이 있다. 이게 뭐냐면 문자열 리터럴은 보통
"문자로 둘러 싸여서 한줄에 쓰게 된다.
위와 같이 말이다. 그런데 한 문자열이 한줄이 아니라 여러줄을 가지게 되면 어떻게 될까?
위와 같이 쓰면 된다. 그런데 이렇게 계속 쓰게 되면 2~3줄 정도는 괜찮지만 텍스트 분량이 많은 경우에는 상당히 보기 힘들게 된다. 프로그래밍 텍스트 에디터는 대부분 자동 줄바꿈을 사용하지 않기 때문에 더욱 그렇다.
그래서 대부분의 프로그래밍 언어는 스트링 리터럴에 여러줄을 쓸 수 있는 특별한 문법을 지원한다.
그래서 자바도 당연히 있을 것이라고 생각했고 내가 몰라서 못쓰는 것 뿐이라고 생각했다. 하지만 자바에는 그런게 없다. 자바에서 그런 문법이 추가된다면 어떻게 될지에 대해서 토론하는 글타래가 있다.
http://www.jroller.com/scolebourne/entry/java_7_multi_line_string
또한 다른 언어에서는 이 문법이 어떻게 구현되는 지 내가 아는 프로그래밍 언어에 대해서 대충 정리해 보았다.
C, C++
Python, Scala, Groovy
Perl
C#
Java
"This is string"
위와 같이 말이다. 그런데 한 문자열이 한줄이 아니라 여러줄을 가지게 되면 어떻게 될까?
"This is 1st line.\nThis is 2nd line"
위와 같이 쓰면 된다. 그런데 이렇게 계속 쓰게 되면 2~3줄 정도는 괜찮지만 텍스트 분량이 많은 경우에는 상당히 보기 힘들게 된다. 프로그래밍 텍스트 에디터는 대부분 자동 줄바꿈을 사용하지 않기 때문에 더욱 그렇다.
"Q: 애초에 이렇게 쓸 수는 없나요?
A: SQL에서는 된답니다."
그래서 대부분의 프로그래밍 언어는 스트링 리터럴에 여러줄을 쓸 수 있는 특별한 문법을 지원한다.
그래서 자바도 당연히 있을 것이라고 생각했고 내가 몰라서 못쓰는 것 뿐이라고 생각했다. 하지만 자바에는 그런게 없다. 자바에서 그런 문법이 추가된다면 어떻게 될지에 대해서 토론하는 글타래가 있다.
http://www.jroller.com/scolebourne/entry/java_7_multi_line_string
또한 다른 언어에서는 이 문법이 어떻게 구현되는 지 내가 아는 프로그래밍 언어에 대해서 대충 정리해 보았다.
C, C++
char* aString = "This is 1st line.\n"
"This is 2nd line.";
Python, Scala, Groovy
aString = """This is 1st line."문자만 사용되므로 개인적으로 가장 좋아하는 스타일이다.
This is 2nd line."""
Perl
$aString = <<END;이것을 heredoc 스타일이라고 하는데 다른 스크립트 언어에서도 많이 쓰인다.
This is 1st line.
This is 2nd line.
END
C#
string aString = @"This is 1st line.@하나만 추가하면 되므로 나쁘지 않다.
This is 2nd line.";
Java
String = "This is first line\n"아까 말했듯이 그런거 없다. 그냥 + 로 붙여라.
+ "This is second line";
반응형