fn longest(x: &str, y: &str) -> &str { 

 if x.len() > y.len() { 

 x } else 

 y } }


위 코드가 수명 표시를 안해서 컴파일이 안된다는건 알겠는데


책에 이렇게도 쓰여있거든?


"함수를 정의하는 시점에서는 이 함수에 어떤 타입이 실제로 전달될 것인지를 알 수 없고 

if else 중 어떤 코드가 실행될 것인지도 알 수 없다."


이해가 안가는게 매개변수랑 리턴에 다 타입을 써줬는데 왜 어떤 타입이 실제로 전달될지를 모른단거임??