STUDIO HAZE · jeniapp
Topaz source
Open by house policy. Topaz is our own language.
Topaz 5.20.2 · 63 files
apps/slow-monster/core/util.tpz
Topaz · 1039 B · Original file
1
// 여러 core 모듈이 쓰는 정수 범위 가두기와 배열 사본 도우미를 둡니다.2
// 범위가두기는 정수를 [하한, 상한] 으로 가두고, 복사추가는 원본을 그대로 둔 새 배열에 원소 하나를 붙여 돌려줍니다.3
// 순수 함수라 같은 인자는 늘 같은 결과입니다.4
// 인자 배열을 바꾸지 않습니다. 한쪽 경계만 가둘 때는 표준 atLeast, atMost 를 씁니다.5
// Shared core utilities: integer range clamping and copy-then-append.7
// 하한을 먼저 보므로 하한이 상한보다 크면 하한보다 작은 값은 하한, 나머지는 상한이 됩니다.8
export function 범위가두기(값: int, 하한: int, 상한: int) -> int {9
if 값 < 하한 { 하한 } else { 값.atMost(상한) }10
}12
// 배열은 참조로 공유되므로 사본에 붙여 호출자의 배열을 건드리지 않습니다.13
export function 복사추가<T>(원본: Array<T>, 추가: T) -> Array<T> {14
let mut 결과 = 원본.slice(0, 원본.length)15
결과.push(추가)16
결과17
}SHA256 4deb05ef33fcb0bf2bfd296bb09af7cae602b45961f24a1c1d4ffe17ba29f355