Topazdocs
언어 정책

금지·유예 형식

Topaz가 받아들이지 않는 표기와 아직 언어에 포함되지 않은 기능.

금지된 형식을 명확히 정하는 일도 언어 규칙의 일부입니다. 다른 언어나 예전 초안의 표기가 자연스럽게 보이더라도 두 번째 방언으로 받아들이지 않습니다.

정책

현재 코드는 let mut, Array<T>, (T) -> U, ...args: T, 리스트 나머지 ..rest, 람다, 등록된 큰따옴표 템플릿, 후위 ?, 정해진 import/export, 명시적 concurrent를 사용합니다. 매뉴얼에 없는 형식은 백엔드 언어가 지원해도 Topaz 문법이 되지 않습니다.

명시된 동작

검사기는 잘못된 형식을 백엔드를 고르기 전에 거부합니다. 어떤 백엔드가 현재 허용된 형태를 지원하지 못하면 소스를 다른 뜻으로 해석하지 않고 명시적으로 거부해야 합니다.

제약과 명시적 거부

거부 대상에는 mut let, ++, --, 문자열 인덱싱과 슬라이스, [T], function(T) -> U, [head, ...tail], JavaScript식 레코드 스프레드, Rust식 참조·수신자 문법, 익명 function, 백틱과 ${...}, assert, try, async/await, 모듈 재공개가 포함됩니다.

유예 경계

유예된 기능은 부분적으로 지원된다는 뜻이 아닙니다. 그래핀 API, HTML과 사용자 템플릿, 고위 제네릭, 넓은 프로토콜 배치, 일반 반복자와 스프레드, 비동기·취소, 실행 오류 복구는 후속 언어 결정으로 채택되기 전에는 사용할 수 없습니다.

예제

TOPAZ
let mut count = 0
let values: Array<int> = []
let transform: (int) -> int = value => value + 1

match values {
    case [head, ..tail] => { count = transform(head) }
    case [] => { count = 0 }
}

관련 정책