#Rust
https://doc.rust-jp.rs/book-ja/ch04-02-references-and-borrowing.html#%E5%8F%AF%E5%A4%89%E3%81%AA%E5%8F%82%E7%85%A7
## 概要
```rust
fn main() {
let mut s = String::from("hoge");
let r1 = &s;
let r2 = &mut s; // ここでエラーになる
println!("{}, {}", r1, r2);
}
```
```
error[E0502]: cannot borrow `s` as mutable because it is also borrowed as immutable
--> src\main.rs:5:14
|
4 | let r1 = &s;
| -- immutable borrow occurs here
5 | let r2 = &mut s;
| ^^^^^^ mutable borrow occurs here
6 |
7 | println!("{}, {}", r1, r2);
| -- immutable borrow later used here
```
## 理由
- [[不変参照]]は、参照先のデータが書き換わることを想定していないため
- [[特定のスコープである特定データに対して1つしか可変参照を持てない]] と同じ