snake_case used
fn some_thing() -> return_type {
// do something
}struct StructName{
field: String,
some_thing: bool,
...
}struct StructName(String, bool, ...);{:?}// derive = 파생, 상속
#[derive(Debug)]
struct Struct {
str: String,
num: i64,
}{}#[derive(Debug)]
struct Struct {
str: String,
num: i64,
}
// impl Display need #[derive(Debug)]
impl Display for Struct {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result{
write!(f, "Struct({}, {})", self.str, self.num)
}
} // PartialEq => Enum == Enum
#[derive(PartialEq)]
enum Enum{
Test(String)
}
fn main(){
let enum_a = Enum::Test(String::from("test"));
let enum_b = Enum::Test(String::from("test"));
println!("{}", enum_a == enum_b); // print "true"
}#[derive(PartialEq, Debug)]
enum Enum {
Test(String)
}
fn main(){
let enum_a = Enum::Test(String::from("test"));
let enum_b = Enum::Test(String::from("test"));
println!("{} == {} = {}", enum_a, enum_b, enum_a == enum_b)
}declare with values [a, b, c, ...]
let days = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];declare with number of specific value [T; size]
let bytes = [0; 256]; // length : 256, all values : 0days[0];
days[1];
...vec.push or vec.pop need mut
let vec_a = vec![0, 1, 2];
let mut vec_b = vec![0, 1, 2];
vec_a.pop(); // error may occur
vec_b.pop(); // okSome(T)unwrap
let mut vec = vec![0, 1, 2, 3];
let popped = vec.pop();
println!("{:?}, {}", popped, popped.unwrap()); // Some(3), 3unwrap_or
let mut vec = vec![0, 1, 2, 3];
let popped = vec.pop();
println!("{:?}, {}", popped, popped.unwrap_or(0)); // Some(3), 3
println!("{:?}, {}", popped, None.unwrap_or(0)); // Some(3), 0