linux:rust

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
linux:rust [2021/01/31 18:03] kurt.smolderen@empuly.netlinux:rust [2021/02/14 13:05] (current) kurt.smolderen@empuly.net
Line 6: Line 6:
   * ''cargo build'': Build program without optimizations. Output is stored in //./target/debug//.   * ''cargo build'': Build program without optimizations. Output is stored in //./target/debug//.
   * ''cargo build –release'': Build program with runtime optimizations. Output is stored in //./target/release//.   * ''cargo build –release'': Build program with runtime optimizations. Output is stored in //./target/release//.
 +===== Data types =====
 +
 +  * Scalar types:
 +      * Integer: Internally represented in 2-components notation when signed (-(2<sup>n</sup>   ) -> 2<sup>n</sup>   -1)
 +
 +^Length^Signed^Unsigned|
 +|8-bit|i8|u8|
 +|16-bit|i16|u16|
 +|32-bit|i32|u32|
 +|64-bit|i64|u64|
 +|128-bit|i128|u128|
 +|arch|isize|usize|
 +
 +  * Floating point: ''f32'', ''f64''
 +  * Boolean: ''bool''
 +  * Character: ''char''
 +  * Compound types
 +  * Tuple: Fixed size (defined at declaration), elements may differ in type
 +      * ''let tup: (i32, f64, u8) = (500, 6.4, 1);''
 +      * Values can be retrieved by either pattern matching: ''let (x, y, z) = tup; %%//%% x, y and z are now accessible as variables''  or by using a period ''let x = tup.0;''
 +      * Array: Fixed size, elements should be of the same type
 +      * ''let a = [1, 2, 3];''
 +      * ''let a: [f64; 3] = [1.0, 2.0, 3.0];''
 +      * ''let a = [0; 5];'': Creates an array of size 5 with all elements initialized to 0
 +      * ''let first = a[0];'': Accessing elements of array
 +      * ''for element in a.iter() { … }'': Iterates over elements in array
 +      * Rust panics on index out of bounds situations
 +
 ===== Variables ===== ===== Variables =====
  
   * ''let foo = bar;'': Creates immutable variable ''foo''  and assigns it value ''bar''.   * ''let foo = bar;'': Creates immutable variable ''foo''  and assigns it value ''bar''.
-  * ''let mut foo = bar;'': Creates mutable varibale ''foo''  and assigns it value ''bar''.+  * ''let mut foo = bar;'': Creates mutable variable ''foo''  and assigns it value ''bar''
 +  * ''let foo: type = false;'': Creates immutable variable ''foo%''  with explicit type definition. 
 +===== Functions ===== 
 + 
 +  * ''fn function_name() { … }'' 
 +  * ''fn function_name(x: i32, y: char) { … }'': Parameterized function 
 +  * ''fn function_name(x: i32) → i32 { … }'': Function with return value. Returned value is last evaluated expression of the function body.
 ===== Terminology ===== ===== Terminology =====
  
-  * Associated function: functione implemented on a type rather than on a particular instance of the type. Similar as a //static method//  in Java.+  * Associated function: function implemented on a type rather than on a particular instance of the type. Similar as a //static method//  in Java. 
 +  * Destructing: splitting a tuple in individual parts by pattern matching 
 +  * Expression: instructions that evaluate to a resulting value. No semicolon at end of line!
   * Macro:   * Macro:
   * Prelude:   * Prelude:
 +  * Statement: instructions that do not return a value
   * Trait:   * Trait:
  
  • linux/rust.1612112622.txt.gz
  • Last modified: 2021/01/31 18:03
  • by kurt.smolderen@empuly.net