Added final tutorial stuff
This commit is contained in:
parent
14784cd6a1
commit
ac71b3b67a
|
@ -0,0 +1,18 @@
|
||||||
|
use std::env;
|
||||||
|
|
||||||
|
pub fn run() {
|
||||||
|
let args: Vec<String> = env::args().collect();
|
||||||
|
let command = args[1].clone();
|
||||||
|
let name = "Brad";
|
||||||
|
let status = "100%";
|
||||||
|
|
||||||
|
// println!("Command: {}", command);
|
||||||
|
|
||||||
|
if command == "hello" {
|
||||||
|
println!("Hi {}, how are you?", name);
|
||||||
|
} else if command == "status" {
|
||||||
|
println!("Status is {}", status);
|
||||||
|
} else {
|
||||||
|
println!("This is not a valid command");
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
pub fn run() {
|
||||||
|
let age: u8 = 30;
|
||||||
|
let check_id: bool = false;
|
||||||
|
let knows_person_of_age = true;
|
||||||
|
|
||||||
|
//If/Else
|
||||||
|
if age >= 21 && check_id || knows_person_of_age {
|
||||||
|
println!("Bartender: what would you like to drink?");
|
||||||
|
} else if age < 21 && check_id {
|
||||||
|
println!("Bartender: sorry you have to leave");
|
||||||
|
} else {
|
||||||
|
println!("Bartender: I'll need to see your ID");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Shorthand if
|
||||||
|
let is_of_age = if age >= 21 { true } else { false };
|
||||||
|
println!("is of age: {}", is_of_age)
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
enum Movement {
|
||||||
|
// Variants
|
||||||
|
Up,
|
||||||
|
Down,
|
||||||
|
Left,
|
||||||
|
Right
|
||||||
|
}
|
||||||
|
|
||||||
|
fn move_avatar(m: Movement) {
|
||||||
|
// Perform action depending on info
|
||||||
|
match m {
|
||||||
|
Movement::Up => println!("Avatar moving up"),
|
||||||
|
Movement::Down => println!("Avatar moving downs"),
|
||||||
|
Movement::Left => println!("Avatar moving left"),
|
||||||
|
Movement::Right => println!("Avatar moving right")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn run() {
|
||||||
|
let avatar1 = Movement::Left;
|
||||||
|
let avatar2 = Movement::Up;
|
||||||
|
let avatar3 = Movement::Right;
|
||||||
|
let avatar4 = Movement::Down;
|
||||||
|
|
||||||
|
move_avatar(avatar1);
|
||||||
|
move_avatar(avatar2);
|
||||||
|
move_avatar(avatar3);
|
||||||
|
move_avatar(avatar4);
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
pub fn run() {
|
||||||
|
greeting("hello", "Jane");
|
||||||
|
|
||||||
|
// Bind function values to variables
|
||||||
|
let get_sum = add(5, 5);
|
||||||
|
println!("Sum: {}", get_sum);
|
||||||
|
|
||||||
|
// Closure
|
||||||
|
let n3: i32 = 10;
|
||||||
|
let add_nums = |n1:i32, n2:i32| n1 + n2 + n3;
|
||||||
|
println!("C Sum: {}", add_nums(3,3));
|
||||||
|
}
|
||||||
|
|
||||||
|
fn greeting(greet:&str, name:&str) {
|
||||||
|
println!("{} {}, nice to meet you!", greet, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn add(n1:i32,n2:i32) ->i32 {
|
||||||
|
n1 + n2
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
pub fn run() {
|
||||||
|
let mut count = 0;
|
||||||
|
|
||||||
|
// Infinite loop
|
||||||
|
// loop {
|
||||||
|
// count += 1;
|
||||||
|
// println!("Number: {}", count);
|
||||||
|
|
||||||
|
// if count == 20 {
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// While loop (FizzBuzz)
|
||||||
|
while count <= 100 {
|
||||||
|
if count % 15 == 0 {
|
||||||
|
println!("fizzbuzz");
|
||||||
|
} else if count % 3 == 0 {
|
||||||
|
println!("fizz");
|
||||||
|
} else if count % 5 == 0 {
|
||||||
|
println!("buzz");
|
||||||
|
} else {
|
||||||
|
println!("{}", count);
|
||||||
|
}
|
||||||
|
// Inc
|
||||||
|
count += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
for x in 1..100 {
|
||||||
|
if x % 15 == 0 {
|
||||||
|
println!("fizzbuzz");
|
||||||
|
} else if x % 3 == 0 {
|
||||||
|
println!("fizz");
|
||||||
|
} else if x % 5 == 0 {
|
||||||
|
println!("buzz");
|
||||||
|
} else {
|
||||||
|
println!("{}", x);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
18
src/main.rs
18
src/main.rs
|
@ -4,7 +4,14 @@
|
||||||
//mod strings;
|
//mod strings;
|
||||||
//mod tuples;
|
//mod tuples;
|
||||||
//mod arrays;
|
//mod arrays;
|
||||||
mod vectors;
|
//mod vectors;
|
||||||
|
//mod conditionals;
|
||||||
|
//mod loops;
|
||||||
|
//mod functions;
|
||||||
|
//mod pointer_ref;
|
||||||
|
//mod structs;
|
||||||
|
// mod enums
|
||||||
|
mod cli;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
//print::run();
|
//print::run();
|
||||||
|
@ -13,5 +20,12 @@ fn main() {
|
||||||
//strings::run();
|
//strings::run();
|
||||||
//tuples::run();
|
//tuples::run();
|
||||||
//arrays::run();
|
//arrays::run();
|
||||||
vectors::run();
|
//vectors::run();
|
||||||
|
//conditionals::run();
|
||||||
|
//loops::run();
|
||||||
|
//functions::run();
|
||||||
|
//pointer_ref::run();
|
||||||
|
// structs::run();
|
||||||
|
// enums::run();
|
||||||
|
cli::run();
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
pub fn run() {
|
||||||
|
// Primitive Array
|
||||||
|
let arr1 = [1,2,3];
|
||||||
|
let arr2 = arr1;
|
||||||
|
|
||||||
|
// Need to use reference for non primitive values
|
||||||
|
|
||||||
|
// Vector
|
||||||
|
let vec1 = vec![1,2,3];
|
||||||
|
let vec2 = &vec1;
|
||||||
|
|
||||||
|
println!("Values: {:?}", (&vec1,vec2));
|
||||||
|
}
|
|
@ -0,0 +1,62 @@
|
||||||
|
//traditional struct
|
||||||
|
// struct Color {
|
||||||
|
// red: u8,
|
||||||
|
// green: u8,
|
||||||
|
// blue: u8
|
||||||
|
// }
|
||||||
|
|
||||||
|
// Tuple struct
|
||||||
|
// struct Color(u8,u8,u8);
|
||||||
|
|
||||||
|
struct Person {
|
||||||
|
first_name: String,
|
||||||
|
last_name: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Person {
|
||||||
|
// Construct person
|
||||||
|
fn new(first: &str, last: &str) -> Person {
|
||||||
|
Person {
|
||||||
|
first_name: first.to_string(),
|
||||||
|
last_name: last.to_string()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get full name
|
||||||
|
fn full_name(&self) -> String {
|
||||||
|
format!("{} {}", self.first_name, self.last_name)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set last name
|
||||||
|
fn set_last_name(&mut self, last:&str) {
|
||||||
|
self.last_name = last.to_string();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Name to tuple
|
||||||
|
fn to_tuple(self) -> (String,String) {
|
||||||
|
(self.first_name,self.last_name)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn run() {
|
||||||
|
// let mut c = Color {
|
||||||
|
// red: 255,
|
||||||
|
// green: 255,
|
||||||
|
// blue: 255
|
||||||
|
// };
|
||||||
|
|
||||||
|
// c.red = 200;
|
||||||
|
|
||||||
|
//println!("Color: {} {} {}", c.red,c.green,c.blue);
|
||||||
|
// let mut c = Color(255,0,0);
|
||||||
|
|
||||||
|
// c.0 = 200;
|
||||||
|
|
||||||
|
// println!("Color: {} {} {}", c.0,c.1,c.2);
|
||||||
|
let mut p = Person::new("Mary", "Doe");
|
||||||
|
println!("Person {}", p.full_name());
|
||||||
|
p.set_last_name("Williams");
|
||||||
|
println!("Person {}", p.full_name());
|
||||||
|
println!("Person {:?}", p.to_tuple());
|
||||||
|
}
|
Loading…
Reference in New Issue