blob: d053f90d4645c6a695fe14eaab96757e3e2289ac (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
[[Why it is good to learn rust]]
[[A cool tool that visualizes the borrow checker]]
[[Rust principles]]
[[Cargo]]
[[Items that are always imported by default in Rust are called the prelude]]
[[Static class functions are called associated functions]]
[[References are also immutable by default]]
[[Random numbers in Rust]]
[[Pattern matching with a match expression]]
[[Shadowing variables]]
[[Integers can overflow if compiled with --release]]
[[Char is a unicode scalar value]]
[[Unlike integers floats do not have an architecture dependent size]]
[[Why is it called destructuring]]
[[Accessing a tuple by index is different from an array]]
[[An empty tuple is called a unit]]
[[Primitive values such as the array are allocated on the stack]]
[[Arrays are useful when you know the length will not change]]
[[Array notation]]
[[A scope block is an expression]]
[[Adding a semicolon to the end of a line turns it into a statement]]
[[How to return from a function]]
[[Statement vs expression]]
[[There is no truthiness]]
[[If is not a statement but an expression]]
[[Returning values from loops]]
[[Loop over an array with for-in]]
[[Undefined behaviour is caught by the compiler]]
[[Variables lives on the stack]]
[[To put data on the heap use a Box]]
[[Cloning a box does a deep copy of the heap data]]
[[Aliasing just means that multiple variables point to the same heap data]]
[[A place is anything that is valid to put on the left-hand side of an assignment]]
[[Ownership]]
[[Dereferencing is to access the data behind a pointer]]
[[Aliasing just means that multiple variables point to the same heap data]]
[[Variables are subject to permissions similar to files on linux]]
[[References temporarily remove permissions]]
[[Creating a reference to a variable is called borrowing]]
[[It is illegal to create a mutable reference while an immutable reference is live]]
[[Data must outlive any references to it]]
[[Move ownership out of the function]]
[[Return a static literal]]
[[Defer borrow checking to runtime with garbage collection]]
[[Provide a slot by the caller]]
[[Clone a reference in a function to modify it]]
[[Shortening the lifetime of borrowed variables before mutating it]]
|