Archive for rust

函数 <pre lang="rust">fn line(a: int, b: int, x: int) -> int { return a * x + b; }</pre> 使用fn定义个函数,参数是在括号里边的name:type对,->后面跟返回值类型。 最后一行没有分号,可以省略return,将最为整个代码段的值返回。返回空或者(),可以不写返回类型。函数参数支持模式匹配。 <pre lang="rust">fn first((value, _): (int, f64)) -> int { value }</pre> 析构函数 析构函数用来定义处理文件,socket,对内存的释放。当不再访问之后,对象的析构函数将被调用,防止访问释放的资源可能会产生的动态错误。当一个任务失败,在任务中的所有对象析构函数将被调用。 定义一个链表 <pre lang="rust"> enum List { Cons(...), Nil } enum List { Cons(u32, ~List), Nil }</pre>

Continue

结构体<pre lang="rust">struct Point { x: f64, y: f64 } let mut mypoint = Point { x: 1.0, y: 1.0 }; let origin = Point { x: 0.0, y: 0.0 }; mypoint.y += 1.0; // `mypoint` is mutable, and its fields as well origin.y += 1.0; // ERROR: assigning to immutable field match mypoint { Point { x: 0.0, y: yy } => println!("{}", yy), Point { x: xx, y: yy } => println!("{} {}", xx, yy) } match mypoint { Point { x, .. } => println!("{}", x) } </pre> 如果结构体变量是可变的,那么结构体里边的变量也

Continue

if语句的判断式必须是bool类型的,不能有隐式的转换。如果if分支里边最后是一个值,那么每一个分支都必须是一个值。 match语句类似c的switch。当找到一个匹配项,只执行改分支,不需要加一个break。一个分支匹配多个不同的值用“|”分隔。可以用“<code>M..N</code>”表示两个数字值范围。下划线匹配任何单个值。 每一个分支之间用逗号分隔,如果用大括号包含就可以省略逗号。 <pre lang="rust">match my_number { 0 => println!("zero"), 1 | 2 => println!("one or two"), 3..10 => println!("three to ten"), _ => println!("something else") }</pre> <pre lang="rust">use std::f64; use std::num::atan; fn angle(vector: (f64, f64)) -> f64 { let pi = f6

Continue

好久没写博客了,越来越懒。碰到问题,文档上有的,或者可以搜索到的就懒得总结了,也经常要找多次。准备经常更新。 rust很早之前看过,那时候感觉标准库太少了,特别网络相关的根本找不到。0.9的时候我看好像有了,现在0.1了网络相关的已经有了,准备学习一下rust语言。 hello.rs &nbsp; <pre lang="rust">fn main() { println!("hello?你好"); }</pre> custc hello.rs ./hello rust所有的声明必须在函数里边,rust可以编译成库文件被别的程序包含,甚至是非rust程序。 println!这种标示符后面跟一个叹号的是宏调用。宏调用感觉好强大,还没仔细看。先记几个连接 http://static.rust-lang.org/doc/0.10/guide-macros.html http://static.rust-lang.org/doc/master/std/fmt/index.html#%3Ccode%3Eformat_args!%3C/

Continue