목록러스트 (3)
달삼촌
파워포인터로 정리 ... 일단 슬라이드쉐어에 올렸어요 https://www.slideshare.net/dahlmoon/rust-ownership rust ownership 소유권 문용준 1. 소유권 이해하기 부동산의 소유자와 대여 관계 부동산등은 실제 소유자를 인정하고 소유자가 다른 사람에게 대여할 수 있다. 이때도 소유권에는 아무런 영향을 미치지 않는 www.slideshare.net

러스트는 모든 변수는 소유자라서 값에 대한 소유권을 가질 수 있다. 그래서 매개변수도 변수이므로 일반 변수와 동일하게 소유자의 역할 을 한다. 함수에 프리미티 값을 전달하면 변수에 재할당하는 값이 복사되어 전달된다. 이를 pass by value 라고 한다. 그러면 레퍼런스 값을 변수에 생성해서 인자로 전달하면 현재 변수에 저장된 값이 매개변수의 소유권으로 넘어가서 기존 변수를 드롭처리한다. 그래서 기존 변수의 소유권을 유지하려면 함수에 값을 참조로 전달한다. 참조는 소유권에 관계없고 기존 소유자에게서 사용권을 대여/빌림을 처리해서 포인터만 공유하는 것이다. 러스트는 변수 정의처럼 변수에 참조를 정의해도 기본 불변이 기본이다. 값을 변경하려면 참조도 mut를 사용해서 변경할 수 있는 권한을 부여해야 한다..
러스트는 값에 대한 소유권을 소유자에 할당하면서 이 값의 메모리를 관리하고 소유자가 유효범위를 벗어나면 소유한 값과 같이 메모리에서 제거되는 체계로 메모리를 정리한다. 그러면 소유권을 가진 값에는 무엇이 있나. - 프리미티브 자료형의 값 - 구조체, 이넘 등의 값 - 스마트 포인터에 저장되는 다양한 값 소유자에 해당하는 것은 변수이다. 변수의 관리 규칙은 기본으로 변수는 할당하면 그 값을 변경할 수 없다. 즉 값의 소유권을 가지는 소유자는 특정 시점에 하나 밖에 존재하지 않는다는 것을 의미한다. let 변수명 = 값; 단 값을 변경하려면 변수 정의할 때 mut를 추가적으로 사용해야 한다. 이 말은 특정시점에 값의 소유권 가지는 소유자를 변경할 수 있다. 하지만 값은 항상 소유자가 하나만 있다는 것을 의미..