토파즈 배우기

값과 함수

함수로 남은 학습 시간을 계산하고, 타입 표기를 고르며, 횟수를 세는 값을 갱신합니다.

남은 학습 시간을 계산한 뒤 입력값을 바꿔 출력을 예상해 보세요. 같은 프로그램에서 타입을 직접 적을 때와 mut를 쓸 때도 살펴봅니다.

토파즈를 설치하고 첫 프로그램을 마친 뒤 시작하세요.

남은 시간 계산하기

작업 폴더에 아래 코드를 values-functions.tpz로 저장하세요.

TOPAZ
function 남은분(전체: int, 사용: int) -> int {
    전체 - 사용
}

let 주제 = "Topaz basics"
let 전체: int = 45
let 사용 = 20
let mut 세션수 = 0
세션수 = 세션수 + 1

print("{주제}: {남은분(전체, 사용)} minutes left")
print("sessions: {세션수}")

같은 폴더에서 파일을 검사하고 실행하세요.

BASH
topaz check values-functions.tpz
topaz run values-functions.tpz

검사는 종료 코드 0으로 성공합니다. 프로그램은 다음 두 줄을 출력합니다.

출력
Topaz basics: 25 minutes left
sessions: 1

계산 따라가기

남은분(45, 20)은 첫 출력 줄에 들어갈 25를 반환합니다. 함수는 매개변수 전체와 사용으로 두 수를 받습니다.

각 : int는 해당 매개변수가 정수를 받는다는 뜻입니다. -> int는 함수가 정수를 반환한다는 뜻입니다. 마지막 표현식인 전체 - 사용이 반환값을 만듭니다. 함수 중간에서 끝내려면 return을 쓰세요. 검사기는 반환값의 타입이 선언한 반환 타입과 맞는지 확인합니다.

타입 표기와 재할당 고르기

토파즈가 초깃값으로 타입을 정하는 것을 타입 추론이라고 합니다. 여기서 주제는 string, 사용은 int입니다. 전체: int는 타입을 직접 적은 표기입니다. 초깃값 45만으로도 같은 타입을 알 수 있습니다.

값에 이름을 붙인 것을 바인딩이라고 합니다. let으로 붙인 이름은 사용할 수 있지만 다른 값을 다시 대입할 수는 없습니다. let mut를 쓰면 다른 값을 다시 대입할 수 있습니다. 횟수를 세는 세션수는 0으로 시작하고, 다음 줄에서 1을 더해 1이 됩니다.

필요한 동작쓸 코드
초깃값으로 타입을 알 수 있는 지역 값 만들기let 사용 = 20
선언을 읽는 사람에게 타입 보여 주기let 전체: int = 45
다시 대입할 수 있는 횟수 값 만들기let mut 세션수 = 0
함수가 받을 값과 반환 타입 적기(전체: int, 사용: int) -> int

타입 불일치 진단이 나오면 값과 이름 옆의 타입을 비교하세요. 남은분에는 문자열 "20" 대신 정수 20을 전달하세요.

직접 해보기

전체와 사용의 초깃값을 60과 15로 고치세요. 횟수를 세는 코드는 그대로 두세요. 두 출력 줄을 예상한 뒤 파일을 다시 검사하고 실행하세요.

정답 보기

60 - 15는 45이므로 첫 줄은 Topaz basics: 45 minutes left가 됩니다. 횟수는 여전히 한 번 증가하므로 둘째 줄은 sessions: 1입니다.

다음 실습으로 이어가기

입력값을 바꾸고, 출력이 나온 이유를 설명하는 뺄셈과 횟수 갱신 코드를 찾았다면 다음으로 넘어가세요.

데이터와 제어에서 여러 학습 과제를 저장해 보세요. 세부 문법은 타입과 함수와 제네릭에서 찾을 수 있습니다. 제네릭은 뒤의 예제에서 필요할 때 돌아와 읽으세요.