dev-resources.site
for different kinds of informations.
Rust | References and Borrowing
Published at
7/28/2021
Categories
rust
borrowing
ownership
Author
anuchito
Author
8 person written this
anuchito
open
การอ้างถึง (Reference)
การใช้ References ทำให้เราสามารถเข้าถึงข้อมูลได้โดยที่ไม่ต้องเป็นเจ้าของข้อมูลนั้นก่อน
- '&' ampersands คือเครื่องหมายการอ้างถึงข้อมูล
- การใช้เครื่องหมาย '&' ทำให้เราสามารถเข้าถึงข้อมูลได้โดยไม่ต้องเปลี่ยนเจ้าของมาเป็นเรา
ตัวอย่าง
let s = String::from("data");
println!(&s);
s ยังคงเป็นเจ้าของข้อมูล "data" อยู่ ฟังก์ชั่น println แค่ขอยืมการเข้าถึงข้อมูลนั้นเพื่อทำการปริ้น หลังจาก println ทำงานเสร็จ s ก็กลับมาถือครองข้อมูล "data" ดังเดิม
- ฟังก์ชัน println จะสามารถอ้างถึง ข้อมูล "data" ได้ตราบเท่าที่พารามิเตอร์ของฟังก์ชัน println ชีวิตอยู่
การยืม (Borrowing)
การยืมใช้สำหรับการขอสิทธิเข้าถึงข้อมูลดังตัวอย่างด้านบน
หากเราต้องการยืมด้วย และมีสิทธิในการแก้ไขด้วย ต้องใช้การยืม แบบ &mut s
ทั้งนี้ s ต้องประกาศเป็น mut ถึงจะสามารถทำได้
fn main(){
let mut s = String::from("data");
print(&mut s); // ยืมแบบสามารถแก้ไขข้อมูล "data" ได้ด้วย
println!("in main: {}", s);
}
fn print(n: &mut String) {
println!("in print : {}", n);
n.push_str(" change here");
}
ผลลัพท์
in print : data
in main: data change here
โปรแกรมสามารถยืมได้แค่ทีละตัวแปร ไม่สามารถยืมได้พร้อมกันหลายตัวแปรได้ถ้าหากมันเป็น mut คือข้อมูลที่สามารถเปลี่ยนแปลงได้ ตามกฎ
ownership Article's
25 articles in total
Testing AppSync Subscriptions
read article
Product engineers
read article
The Three Pillars of Successful Database Maintenance and Monitoring
read article
Rust ownership: another way to manage memory
read article
Demystifying Memory in Rust: Ownership, Borrowing, and the Memory Landscape:
read article
Impact of Real-World Asset Tokenization
read article
L'ownership en Rust !
read article
$ugar's GC and Ownership Model
read article
Rust's most unique memory management features explained - Ownership and Borrowing
read article
The Monolith in the Room
read article
Guided Ownership
read article
Rust’s Ownership and Borrowing Enforce Memory Safety
read article
Dev mindset - how to really own the process?
read article
An update on efficient multi-layered key ownership
read article
Rust - Ownership ?
read article
Rust | References and Borrowing
currently reading
Rust | กฎความเป็นเจ้าของ
read article
Responsibility without authority is just janitorial service
read article
Enablement vs Ownership Roles
read article
How ownership saved my career
read article
That's so Rusty: Ownership
read article
Worker Cooperatives in Tech
read article
Get your juniors up and running! 🏇🏼
read article
NextCloud: Transfer Ownership
read article
How ownership can make you a better software engineer
read article
Featured ones: