関数に変数を渡すことによる値の移動が起きて欲しくない時がある。そういった時には参照渡しを利用する。参照渡しでは所有権の移動は発生しない。
fn main() {
let s1 = String::from("hello");
let len = calculate_length(&s1);
println!("'{}'の長さは、{}です", s1, len); //'hello'の長さは、5です
}
fn calculate_length(s: &String) -> usize {
s.len()
}