더북(TheBook)

코드 2-12 벡터 대신 배열을 반환해 생긴 에러

error[E0308]: mismatched types
    --> src/main.rs:25:9
        |
     25 |         ["faq".to_string()],
        |         ^^^^^^^^^^^^^^^^^^^ 
                  expected enum `Option`, 
                  found array of 1 element
        |
    = note: expected enum `Option<Vec<String>>`
        found array `[String; 1]`

이것도 하나의 원인 때문에 일어난 두 개의 에러 같다. 컴파일러는 Vec이 포함된 Option 열거 타입을 예상했지만, 배열을 찾았다고 한다. docs.rs(https://doc.rust-lang.org/std/option/index.html)에서 Option을 찾아 참고하라.

코드 2-12를 보면 Some에 태그를 캡슐화해야 함을 알 수 있다. 그리고 Question 구조체 안에는 문자열 배열이 아니라 문자열 벡터가 필요함을 알 수 있다. 러스트에서 벡터와 배열이 동일하지는 않지만, 다른 언어에서의 배열 같은 기능이 필요하다면 러스트에서는 Vec을 쓴다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.