Rust is a curly-brace, block-structured expression language. It visually resembles the C language family, but differs significantly in syntactic and semantic details. Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and operational – that preserve large-system integrity, availability and concurrency.
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles.
Type system | static, nominal, linear, algebraic, locally inferred |
Memory safety | no null or dangling pointers, no buffer overflows |
Concurrency | lightweight tasks with message passing, no shared memory |
Generics | type parametrization with type classes |
Exception handling | unrecoverable unwinding with task isolation |
Memory model | optional task-local GC, safe pointer types with region analysis |
Compilation model | ahead-of-time, C/C++ compatible |
License | dual MIT / Apache 2 |
fn main() { let nums = [1, 2]; let noms = ["Tim", "Eston", "Aaron", "Ben"]; let mut odds = nums.iter().map(|&x| x * 2 - 1); for num in odds { do spawn { println!("{:s} says hello from a lightweight thread!", noms[num]); } } }
联系客服