Topaz 문자열은 유니코드 스칼라를 보존하며 {expression}으로 값을 보간합니다. 태그가 붙은 템플릿은 문자열과 다른 타입의 값을 만듭니다.
정책
일반 문자열과 세 개의 큰따옴표를 쓰는 문자열은 모두 {expr} 보간을 사용합니다. 인접한 p, r, sh, sql 태그는 각각 경로, 정규식, 셸 명령 자료, SQL 쿼리 자료를 만듭니다. SQL 보간 값은 직접 문자열로 붙지 않고 매개변수로 분리됩니다.
명시된 동작
보간 표현식은 왼쪽에서 오른쪽으로 한 번씩 평가됩니다. 일반 문자열은 표시 규칙에 따라 값을 문자로 바꿉니다. 태그 템플릿은 원본 구간과 보간 위치를 구조화한 자료로 보존합니다. sh 템플릿을 만드는 것은 명령을 실행한다는 뜻이 아닙니다.
제약과 명시적 거부
백틱, ${expression}, 작은따옴표 문자열, html 태그, 사용자 정의 태그, 등록되지 않은 인접 태그는 거부됩니다. 태그는 문자열과 인접한 자리 밖에서는 키워드가 아닙니다.
유예 경계
그래핀 단위 API, HTML 템플릿, 사용자 정의 태그, 임의의 정규식 엔진 세부 동작, 플랫폼별 경로 표시 보장은 현재 범위 밖입니다.
예제
TOPAZ
let region = "EMEA"
let report = sql"""
SELECT name, total
FROM orders
WHERE region = {region}
ORDER BY total DESC
"""