44 lines
845 B
Rust
44 lines
845 B
Rust
fn main() {
|
|
let s = String::from("hello");
|
|
takes_ownership(s);
|
|
let x = 5;
|
|
makes_copy(x);
|
|
|
|
let s1 = gives_ownership();
|
|
println!("{s1}");
|
|
let s2 = String::from("Hello");
|
|
println!("{s2}");
|
|
let mut s3 = takes_and_gives_back(s2);
|
|
println!("{s3}");
|
|
let len = calculate_length(&s3);
|
|
println!("{s3} -> {len}");
|
|
change(&mut s3);
|
|
println!("{s3}");
|
|
|
|
|
|
|
|
}
|
|
fn change(some_string: &mut String){
|
|
some_string.push_str(", world");
|
|
}
|
|
|
|
fn takes_ownership(some_string: String) {
|
|
println!("{some_string}");
|
|
}
|
|
|
|
fn makes_copy(some_integer: i32) {
|
|
println!("{some_integer}");
|
|
}
|
|
|
|
fn gives_ownership() -> String {
|
|
let some_string = String::from("yours");
|
|
some_string
|
|
}
|
|
|
|
fn takes_and_gives_back(a_string: String) -> String {
|
|
a_string
|
|
}
|
|
|
|
fn calculate_length(s: &String) -> usize {
|
|
s.len()
|
|
} |