Topaz 식별자는 유니코드를 자연스럽게 사용하며, 키워드는 영어 철자를 유지합니다. 줄바꿈은 완성된 항목을 끝내거나 다음 줄로 표현식을 이어 주는 역할을 합니다.
정책
식별자는 유니코드 문자, 밑줄, 이모지로 시작할 수 있고 이후에 숫자를 포함할 수 있습니다. _만 단독으로 쓰면 패턴 와일드카드나 파이프라인 플레이스홀더가 됩니다. 토큰은 가장 긴 형식을 우선하므로 ..., .., ..<, ?., 후위 ?가 서로 구분됩니다.
명시된 동작
문자열은 유니코드 스칼라의 순서이며 암묵적으로 정규화하지 않습니다. 큰따옴표 문자열은 정해진 이스케이프와 {expression} 보간을 지원합니다. 세 개의 큰따옴표를 쓰는 문자열은 닫는 구분자의 들여쓰기를 기준으로 공통 여백을 제거합니다. 괄호 안이거나 연산자로 이어진 경우가 아니라면 줄바꿈이 항목을 끝냅니다.
제약과 명시적 거부
숫자 리터럴은 10진수만 사용하며 자릿수 구분 밑줄은 허용하지 않습니다. 작은따옴표 문자열과 문자 리터럴은 없고, 블록 주석은 중첩될 수 없습니다. _는 값으로 읽을 수 없습니다. 문자열에는 s[i], s.length, 슬라이스 문법을 사용할 수 없습니다.
유예 경계
그래핀 단위 연산, 문자열 직접 슬라이스, 암묵적 유니코드 정규화, 다른 진법의 숫자 표기, 중첩 블록 주석은 아직 언어에 포함되지 않습니다. 문자열의 스칼라는 s.scalars()로 명시적으로 얻습니다.
예제
TOPAZ
function 인사하기(이름: string) -> string {
let message = "안녕하세요, {이름}님!"
return message
}
let 사용자 = "토파즈"
print(인사하기(사용자))