더북(TheBook)

이 코드를 main.rs 파일에 추가하고 실행한다. 이중 콜론(::)을 사용해 Question에서 new 메서드를 호출하는 것을 주목하자. 러스트에는 타입에 함수를 구현하는 방식이 두 가지 있다.

연관 함수(associated function)

메서드(method)

연관 함수&self를 매개변수로 사용하지 않으며 호출할 때 이중 콜론(::)을 붙인다. 다른 프로그래밍 언어의 정적 함수와 거의 동일하다. 명칭에 연관이라는 단어가 있지만, 특정한 인스턴스에 연관되어 있는 것은 아니다. 반면에 메서드&self를 매개변수로 취하고 호출할 때는 간단히 마침표(.)를 붙인다. 그림 2-4에서 이 두 방식을 구현하는 것과 호출하는 것의 차이점을 보여 준다.

▲ 그림 2-4 연관 함수(상단의 new)는 &self 매개변수를 사용하지 않으며 이중 콜론을 써서 호출한다. 메서드(하단의 update_title)는 &self 매개변수를 사용하며 마침표를 써서 호출한다. impl 블록 내에서 다른 함수를 호출할 때는 블록 이름을 붙인다(이 경우에는 Question::new(...))

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