Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

데블스캠프2018/RS: Difference between revisions

From ZeroWiki
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.