More actions
No edit summary |
No edit summary |
||
| Line 53: | Line 53: | ||
} | } | ||
``` | ``` | ||
``` | |||
fn main() { | |||
println!("Factorial: {}", factorial(5)); | |||
} | |||
fn factorial(i: u64) -> u64 { | |||
let mut acc = 1; | |||
for num in 2..i+1 { | |||
acc *= num; | |||
} | |||
acc | |||
} | |||
``` | |||
= Rust = | |||
* statement & expression | |||
** statement : no return value | |||
** let statement | |||
** expression : evaluate to a resulting value | |||
** operation | |||
** calling a function | |||
** calling a macro | |||
** block | |||
== ownership(소유권) == | |||
* enables memory safety guarantees without a garbage collector. | |||
=== Ownership Rules === | |||
* Each value in Rust has a variable that's called its owner. | |||
* There can only be one owner at a time. | |||
* When the owner goes out of scope, the value will be dropped. -> lifetime | |||
* At any given time, you can have either one mutable reference or any number of immutable references. | |||
* References must always be valid. | |||
Latest revision as of 17:02, 28 June 2018
.rs
feature
- zero-cost abstractions
- move semantics
- guaranteed memory safety
- threads without data races
- trait-based generics
- pattern matching
Fast
- LLVM
- Compile to binary
- no GC
- minimal runtime
Prevent segfaults
- No dangling pointer
- No null pointer
- No segfault
thread safety
- No data race
- Ownership guarantee
- hard to compile
Cargo
- The Rust package manager
- downloads dependencies
Rustup
- Rust toolchain installer
- stable
- beta
- nightly
playground
Hello, rust
``` fn main(){
println!("Hello World");
} ```
``` fn main() {
let language = "rust";
println!("Hello, {}", language);
} ```
``` fn main() {
println!("Factorial: {}", factorial(5));
} fn factorial(i: u64) -> u64 {
let mut acc = 1;
for num in 2..i+1 {
acc *= num;
}
acc
} ```
Rust
- statement & expression
- statement : no return value
- let statement
- expression : evaluate to a resulting value
- operation
- calling a function
- calling a macro
- block
ownership(소유권)
- enables memory safety guarantees without a garbage collector.
Ownership Rules
- Each value in Rust has a variable that's called its owner.
- There can only be one owner at a time.
- When the owner goes out of scope, the value will be dropped. -> lifetime
- At any given time, you can have either one mutable reference or any number of immutable references.
- References must always be valid.