우선 러스트의 자동 dereference로 인해 어떤 함수의 인자 타입이 &str이면 &String 타입을 넣어도 상관없잖아?

그런데 String타입을 넣으면 에러가 나잖아?


문제는 아래코드는 정상작동하는데 이유를 모르겠는데 자세히 설명좀 해주실분?

let s1 = String::from("hello"); // s1의 타입은 String

let s2 = String::from(s1); // from함수는 &str을 인자로 받음 근데 잘 동작함