1. 제네릭 타입 제약에서 'a + 'b의 의미는?
이 타입이 수명 'a 와 수명 'b보다 오래 산다는 의미입니다
2. &mut Mutex《T》에서 &mut T를 얻을때 락이 필요한가?
필요 없다면 그게 안전한 이유는?
필요없습니다 get_mut 함수를 이용하면 되는데 이유는 &mut를 얻었다는건
컴파일러가 Mutex 객체에 대해 참조가 이것 하나만 존재한다고 보장하는것이기 때문에
굳이 걸지않아도 안전합니다
3. struct Foo { x: String }에서 Foo 타입의 수명은?
구조체 타입의 수명은 모든 필드의 수명을 더한것과 같습니다
예를들어
이 Foo 타입의 수명은 x와 y를 합한 'a + 'b가 되겠죠
String 타입의 수명은 'static이니 그냥 'static입니다
4. Mutex를 lock할때 &mut대신 Guard를 반환하는 이유는?
&mut를 반환해선 락의 해제시점을 결정할수 없기에 Guard 타입의 Drop으로 락을 해제시킵니다
또한 &mut는 이 Guard가 살아있을때만 얻을수 있기에 락을걸고 &mut를 반환한다던가 하는 행위도 불가능해집니다
댓글 0