프로그래밍 언어(스트링) 비교
Comparison of programming languages (strings)| 비교요인 프로그래밍 언어의 |
|---|
| |
프로그래밍 언어(스트링)의 이러한 비교는 52개 이상의 다양한 컴퓨터 프로그래밍 언어에 대한 문자열 데이터 구조 또는 텍스트 문자열 처리의 특징을 비교한다.
연결
서로 다른 언어가 연결 연산자를 위해 다른 기호를 사용한다. 많은 언어가 "+" 기호를 사용하지만, 몇몇은 이것에서 벗어났다.
공통변형
| 연산자 | 언어들 |
|---|---|
| + | ALGOL 68, BASIC, C++, C#, 코브라, 파스칼, 오브젝트 파스칼, 에펠, 고, 자바스크립트, 자바, 파이톤, 튜링, 루비, 러스트, 윈도 파워쉘, 목표-C, 스위프트, F#, 스칼라, 야 |
| ++ | 하스켈, 얼랑 |
| $+ | mIRC 스크립팅 언어 |
| & | Ada, AppleScript, COBOL(리터럴 전용), Curl, Seed7, VHDL, Visual Basic, Visual Basic.NET, Excel, FreeBASIC, 님 |
| 엔콘크 | 커먼 리스프 |
| . | 펄, PHP, 메이플(최대 버전 5), 오토호키 |
| ~ | 라쿠와 D |
| 아이콘, Standard SQL, PL/I, Rexx 및 Maple(버전 6부터) | |
| <> | 매스매티카, 울프람어 |
| .. | 루아 |
| : | 기본 선택 |
| , | J 프로그래밍 언어, Smalltalk, APL |
| ^ | OCaml, Standard ML, F#, rc |
| // | 포트란 |
| * | 줄리아. |
고유 변형
- Awk는 빈 문자열을 사용한다: 서로 인접한 두 개의 표현식이 연결된다. 이것을 병렬이라고 한다. 유닉스 쉘은 비슷한 구문을 가지고 있다. Rexx는 이 구문을 중간 공간을 포함한 연결에 사용한다.
- C(Python과 함께)는 문자열 리터럴에 대해 병렬 처리를 허용하지만 문자선으로 저장된 문자열의 경우
strcat기능을 사용해야 한다. - COBOL은
STRING문자열 변수를 연결하기 위한 문장. - MATLAB와 옥타브는 " 구문을 사용한다.
[x y]" x와 y를 연결한다. - Visual Basic 및 Visual Basic .NET은 또한 "을 사용할 수 있다.
+" 숫자와 숫자를 나타내는 끈이 함께 있으면 애매한 위험을 감수하고 서명한다. - Microsoft Excel은 "을(를) 모두 허용함
&" 및 함수 "=CONCATENATE(X,Y)". - 녹이 슬다.
concat!매크로와 더format!매크로(이 중 후자가 문서와 예시 전반에 걸쳐 가장 널리 사용된다.
문자열 리터럴
이 절에서는 문자열 리터럴을 선언하는 스타일을 비교한다.
인용된 보간
표현식은 컴파일러/인터프리터가 평가하여 결과를 제자리에 삽입할 때 문자열로 "인터폴레이션"된다.
| 구문 | 언어 |
|---|---|
$"hello, {name}" | C#, Visual Basic.네트 |
"Hello, $name!" | Bourne Shell, Perl, PHP, Windows PowerShell |
qq(Hello, $name!) | 펄(대체) |
"Hello, {$name}!" | PHP(대체) |
"Hello, #{name}!" | 커피스크립트, 루비 |
%Q(Hello, #{name}!) | 루비(대체) |
(format t "Hello, ~A" name) | 커먼 리스프 |
`Hello, ${name}!` | 자바스크립트(ECMAScript 6) |
"Hello, \(name)!" | 스위프트 |
f'Hello, {name}!' | 파이톤 |
이스케이프 인용문
"Escaped" 인용문은 'flag' 기호가 'flag' 기호를 사용하여 문자열을 종료하는 것이 아니라 문자열에 플래그가 사용된 후 문자를 경고하는 것을 의미한다.
| 구문 | 언어 |
|---|---|
"I said \"Hello, world!\"" | C, C++, C#, D, F#, Java, JavaScript, Mathematica, Ocaml, Perl, PHP, Python, Last, Swift, Wolfram Language, Ya |
'I said \'Hello, world!\'' | CoffeeScript, JavaScript(대체), Python(대체) |
"I said `"Hello, world!`"" | 윈도 파워셸 |
"I said ^"Hello, world!^"" | 리볼 |
{I said "Hello, world!"} | REBOL(대체) |
"I said, %"Hello, World!%"" | 에펠 |
!"I said \"Hello, world!\"" | 프리베이직 |
r#"I said "Hello, world!""# | 녹(대체) |
이중 인용
"이중 인용"은 문자열에 인용문이 사용될 때마다 두 번 사용되며, 그 중 하나를 폐기하고 그 다음 문자열 내에서 단일 인용문을 사용하는 것을 의미한다.
| 구문 | 언어 |
|---|---|
"I said ""Hello, world!""" | Ada, ALGOL 68, Excel, Fortran, Visual Basic(.NET), FreeBASIC, 코볼 |
'I said ''Hello, world!''' | Fortran, rc, COBOL, SQL, Pascal, Object Pascal, APL, Smalltalk |
인용된 날염
"원시"는 컴파일러가 탈출이나 보간 작업을 처리하지 않고 문자 내의 모든 문자를 정확히 서면과 동일하게 취급하는 것을 의미한다.
| 구문 | 언어 |
|---|---|
'Hello, world!' | APL, Bourne shell, Fortran, Object Pascal, Pascal, Perl, PHP, Pick Basic, Ruby, Windows PowerShell, Smalltalk |
q(Hello, world!) | 펄(대체) |
%q(Hello, world!) | 루비(대체) |
R"(Hello, world!)" | C++11 |
@"Hello, world!" | C#, F# |
r"Hello, world!" | 코브라, D, 파이톤, 러스트 |
"Hello, world!" | 코볼, FreeBASIC, 픽 베이직 |
`Hello, world!` | D, Go |
raw"Hello, world!" | 스칼라 |
String.raw`Hello, World!` | 자바스크립트(ECMAScript 6) |
멀티라인 문자열
많은 언어들은 특히 여러 행의 문자열을 위한 구문을 가지고 있다. 이러한 언어 중 일부에서 이 구문은 여기 문서 또는 "herdoc"이다: 문자열을 나타내는 토큰은 코드 행 중간에 넣지만, 코드는 시작 토큰 이후에 계속되며 문자열의 내용은 다음 행까지 나타나지 않는다. 다른 언어에서 문자열의 내용은 시작 토큰 직후에 시작되고 코드는 문자열 리터럴의 종료자 다음에 계속된다.
| 구문 | 여기 문서 | 언어 |
|---|---|---|
<<이오프 나는 할 말이 많고 그들에게 말할 시간이 너무 적다> EOF | 네 | 본 쉘, 펄, PHP, 루비 |
<<<<이오프 나는 할 말이 많고 그들에게 말할 시간이 너무 적다> EOF. | 네 | PHP |
@" 할 말이 많고 할 말이 너무 적어서 "@ | 아니요. | 윈도 파워셸 |
"[ 나는 할 말이 많고 말할 시간이 너무 적다 ]" | 아니요. | 에펠 |
"" 나는 할 말이 많고 그들에게 ""라고 말할 시간이 거의 없다. | 아니요. | 커피스크립트, 파이톤, 그루비, 스위프트, 코틀린 |
할 말이 많고 할 말이 너무 적어서 | 아니요. | Visual Basic 입니다.NET(모든 문자열은 다중 행), 러스트(모든 문자열은 다중 행) |
r" 나는 할 말이 많고 말할 시간이 너무 적다. | 아니요. | 녹 |
[[ 나는 할 말이 많고 말할 시간이 너무 적다 ] | 아니요. | 루아 |
할 말이 많고 할 말이 없어 | 아니요. | 자바스크립트(ECMAScript 6) |
고유 견적 모델
| 구문 | 변종명 | 언어 |
|---|---|---|
13HHello, world! | 홀러리스 표기법 | 포트란 66 |
| (공백으로 표시됨) | 공백 및 새 줄로 들여쓰기 | YAML |
메모들
- 1. ^
String.raw``여전히 문자열 보간 작업을 처리한다.