이번 편의 목표: 연체료 함수를 다른 파일로 옮기고, 모듈 밖으로 공개할 이름만 표시합니다.
cargo 프로젝트에서 src/main.rs가 실행 시작점입니다. 같은 src 폴더의 book.rs는 main에서 mod book;으로 불러옵니다. 모듈 안의 이름는 기본이 비공개입니다. 다른 모듈에서 부를 함수에만 pub를 붙입니다.
src/book.rs를 새로 만듭니다.
pub fn overdue_fee(days: i32) -> i32 {
if days <= 0 { 0 } else { days * 100 }
}src/main.rs는 다음만 둡니다.
mod book;
fn main() {
let fee = book::overdue_fee(3);
println!("{fee}");
}cargo run의 출력은 300입니다. book::은 모듈 경로입니다. pub를 빼면 main에서 부를 수 없습니다. 파일로 나누는 기준은 화면 출력이 아니라 자료와 계산입니다. 계산은 book.rs에 두고, 출력은 main.rs에 둡니다.
직접 해 보기
book::overdue_fee(4)로 바꿔 출력이 400인지 확인하세요.
해설
4일은 0보다 크므로 4 * 100입니다. 모듈 선언과 pub는 그대로 둡니다.
COMMENTS
댓글 0
이 글에 대한 의견이나 질문을 남겨 주세요.
댓글은 구글이나 카카오로 시작한 뒤에 남길 수 있습니다.
등록된 댓글이 없습니다.