Revert "finished more"

This reverts commit e83883dead5b76ce704b292256c2559bca670564.
This commit is contained in:
Stanislav Pankrashin 2022-06-23 17:06:25 +12:00
parent e0a2cbf8cd
commit 34f7077523
14 changed files with 55 additions and 37 deletions

View File

@ -1,9 +1,7 @@
// functions1.rs
// Make me compile! Execute `rustlings hint functions1` for hints :)
fn call_me() -> i32 {
1
}
// I AM NOT DONE
fn main() {
call_me();

View File

@ -1,11 +1,13 @@
// functions2.rs
// Make me compile! Execute `rustlings hint functions2` for hints :)
// I AM NOT DONE
fn main() {
call_me(3);
}
fn call_me(num: i32) {
fn call_me(num:) {
for i in 0..num {
println!("Ring! Call number {}", i + 1);
}

View File

@ -1,8 +1,10 @@
// functions3.rs
// Make me compile! Execute `rustlings hint functions3` for hints :)
// I AM NOT DONE
fn main() {
call_me(5);
call_me();
}
fn call_me(num: u32) {

View File

@ -4,12 +4,14 @@
// This store is having a sale where if the price is an even number, you get
// 10 Rustbucks off, but if it's an odd number, it's 3 Rustbucks off.
// I AM NOT DONE
fn main() {
let original_price = 51;
println!("Your sale price is {}", sale_price(original_price));
}
fn sale_price(price: i32) -> i32 {
fn sale_price(price: i32) -> {
if is_even(price) {
price - 10
} else {

View File

@ -1,11 +1,13 @@
// functions5.rs
// Make me compile! Execute `rustlings hint functions5` for hints :)
// I AM NOT DONE
fn main() {
let answer = square(3);
println!("The answer is {}", answer);
}
fn square(num: i32) -> i32 {
num * num
num * num;
}

View File

@ -1,16 +1,13 @@
// if1.rs
// I AM NOT DONE
pub fn bigger(a: i32, b: i32) -> i32 {
// Complete this function to return the bigger number!
// Do not use:
// - another function call
// - additional variables
// Execute `rustlings hint if1` for hints
if (a > b) {
a
} else {
b
}
}
// Don't mind this for now :)

View File

@ -4,13 +4,13 @@
// Step 2: Get the bar_for_fuzz and default_to_baz tests passing!
// Execute the command `rustlings hint if2` if you want a hint :)
// I AM NOT DONE
pub fn fizz_if_foo(fizzish: &str) -> &str {
if fizzish == "fizz" {
"foo"
} else if fizzish == "fuzz" {
"bar"
} else {
"baz"
1
}
}

View File

@ -1,10 +1,12 @@
// move_semantics1.rs
// Make me compile! Execute `rustlings hint move_semantics1` for hints :)
// I AM NOT DONE
fn main() {
let vec0 = Vec::new();
let mut vec1 = fill_vec(vec0);
let vec1 = fill_vec(vec0);
println!("{} has length {} content `{:?}`", "vec1", vec1.len(), vec1);

View File

@ -2,21 +2,27 @@
// Make me compile without changing line 13 or moving line 10!
// Execute `rustlings hint move_semantics2` for hints :)
fn main() {
let mut vec0 = Vec::new();
// I AM NOT DONE
fill_vec(&mut vec0);
fn main() {
let vec0 = Vec::new();
let mut vec1 = fill_vec(vec0);
// Do not change the following line!
println!("{} has length {} content `{:?}`", "vec0", vec0.len(), vec0);
vec0.push(88);
vec1.push(88);
println!("{} has length {} content `{:?}`", "vec1", vec0.len(), vec0);
println!("{} has length {} content `{:?}`", "vec1", vec1.len(), vec1);
}
fn fill_vec(vec: &mut Vec<i32>) -> () {
fn fill_vec(vec: Vec<i32>) -> Vec<i32> {
let mut vec = vec;
vec.push(22);
vec.push(44);
vec.push(66);
vec
}

View File

@ -3,6 +3,8 @@
// (no lines with multiple semicolons necessary!)
// Execute `rustlings hint move_semantics3` for hints :)
// I AM NOT DONE
fn main() {
let vec0 = Vec::new();
@ -15,7 +17,7 @@ fn main() {
println!("{} has length {} content `{:?}`", "vec1", vec1.len(), vec1);
}
fn fill_vec(mut vec: Vec<i32>) -> Vec<i32> {
fn fill_vec(vec: Vec<i32>) -> Vec<i32> {
vec.push(22);
vec.push(44);
vec.push(66);

View File

@ -4,9 +4,12 @@
// freshly created vector from fill_vec to its caller.
// Execute `rustlings hint move_semantics4` for hints!
fn main() {
// I AM NOT DONE
let mut vec1 = fill_vec();
fn main() {
let vec0 = Vec::new();
let mut vec1 = fill_vec(vec0);
println!("{} has length {} content `{:?}`", "vec1", vec1.len(), vec1);
@ -17,7 +20,7 @@ fn main() {
// `fill_vec()` no longer takes `vec: Vec<i32>` as argument
fn fill_vec() -> Vec<i32> {
let mut vec = Vec::new();
let mut vec = vec;
vec.push(22);
vec.push(44);

View File

@ -3,11 +3,13 @@
// adding, changing or removing any of them.
// Execute `rustlings hint move_semantics5` for hints :)
// I AM NOT DONE
fn main() {
let mut x = 100;
let y = &mut x;
*y += 100;
let z = &mut x;
*y += 100;
*z += 1000;
assert_eq!(x, 1200);
}

View File

@ -2,22 +2,24 @@
// Make me compile! `rustlings hint move_semantics6` for hints
// You can't change anything except adding or removing references
// I AM NOT DONE
fn main() {
let data = "Rust is great!".to_string();
get_char(&data);
get_char(data);
string_uppercase(data);
string_uppercase(&data);
}
// Should not take ownership
fn get_char(data: &String) -> char {
fn get_char(data: String) -> char {
data.chars().last().unwrap()
}
// Should take ownership
fn string_uppercase(mut data: String) {
data = data.to_uppercase();
fn string_uppercase(mut data: &String) {
data = &data.to_uppercase();
println!("{}", data);
}

View File

@ -8,12 +8,10 @@
// more than 40 at once, each apple only costs 1! Write a function that calculates
// the price of an order of apples given the quantity bought. No hints this time!
// Put your function here!
fn calculate_apple_price(number_of_apples: u32) -> u32 {
let price = if number_of_apples <= 40 {2} else {1};
// I AM NOT DONE
number_of_apples * price
}
// Put your function here!
// fn calculate_apple_price {
// Don't modify this function!
#[test]