터미널에서 cargo run 명령으로 애플리케이션을 실행하면 긴 에러 목록을 보게 된다. 이런 경험은 여러 해 동안 러스트를 사용한다 하더라도 좀처럼 없어지지 않을 것이다. 컴파일러는 엄격하므로 빨간색 에러의 바다와 친해져야 한다.
러스트는 안전하고 올바른 코드를 생성하려 하므로 컴파일할 때 깐깐하게 대상을 검증한다. 코드 작성 방법을 알려주고 훌륭한 에러 메시지를 제공하여 어디가 잘못되었는지 확인할 수 있는 것은 이런 깐깐함 덕분이다.
코드 2-4 코드를 컴파일할 때 나오는 에러 메시지
error[E0308]: arguments to this function are incorrect
--> src/main.rs:27:20
27 | let question = Question::new(
| ^^^^^^^^^^^^^ ➊
28 | "1",
| --- expected struct `QuestionId`, found `&str` ➋
29 | "First Question",
| ---------------- expected struct `String`, found `&str`
30 | "Content of question",
| --------------------- expected struct `String`, found `&str`
|
note: expected enum `Option`, found array `[&str; 1]`
--> src/main.rs:31:3