博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
rust笔记一
阅读量:6877 次
发布时间:2019-06-26

本文共 2322 字,大约阅读时间需要 7 分钟。

hot3.png

1安装

http://doc.rust-lang.org/0.12.0/guide.html

$ curl -s https://static.rust-lang.org/rustup.sh | sudo sh
卸载
curl -s https://static.rust-lang.org/rustup.sh | sudo sh -s -- --uninstall
2.hello
fn main() { println!("Hello, world!");}

我配置了geditor tab缩进2格, 不喜欢太多。。本篇只提与java比起来不一样的,这里没什么特别的,!号表示这里是一个宏。rust是个expression oriented lang,;号表明一个表达式的结束。

rustc main.rs直接生成main或main.exe可执行文件, 目标机器不用装rust环境即可运行

3Cargo相当于java中的maven

把main.rs扔到src下,配置文件pom.xml对应Cargo.toml

[package] name = "hello_world" version = "0.0.1" authors = [ "Your name 
" ][[bin]] name = "hello_world"

tom写的lang叫toml。。 这里有两张表,第一部分是meta信息,第二部分表示要build一个binary而不是library,编译用cargo build和maven一样,输出在target目录,和maven一样。

以后就不再用rustc而用cargo build命令

4变量绑定

let x = 5i;这里的i不表示他是虚数,而表示他是一个integer
let x:int = 5;一下可以绑定多个let (x,y)=(1i,2i)
let变量默认是final的和scala中的val一样, 可变的呢?let mut x:int = 5(有点繁琐!)

let x:int;

此时x没有初始化,不能直接使用(和java不一样), 最后是在println中可以使用{}占位,和java一样

5 If

let x = 5i;if x == 5i {    println!("x is five!");} else {    println!("x is not five :(");}
let x = 5i;let y = if x == 5i {    10i} else {    15i};
5.1 Expression &Statements

只有两类statements,其它全为expression,其中expression有返回值,statements没用返回值.

第一种没有返回值的statements: let语句
不可以这么写

let x = (let y = 5i);
第二种返回值为unit的statement叫expression statement:
它的作用是把expression变成statement;

rust的语法要求statement后面必须紧跟statement,所以你得用;号把expression分隔开,正确的写法

let x = 5i;let y: int = if x == 5i { 10i } else { 15i };
错误的写法:
let x = 5i; let y: int = if x == 5i { 10i; } else { 15i; };
error: mismatched types: expected `int` but found `()` (expected int but found ())
分号将expression转为statement,丢弃原有的返回值,返回() ,读作unit

6,函数

和java一样,参数必须声明类型

fn main() {    print_sum(5, 6);}fn print_sum(x: int, y: int) {    println!("sum is: {}", x + y);}
带返回值的
fn add_one(x: int) -> int {    x + 1}
不要用retur
n,
fn foo(x: int) -> int {    if x < 5 { return x; }    return x + 1;}
7.注释
// 单行注释

/// 文档注释

在斜线和文字之间留一个空格以示美观, 文档注释用markdown语法,用rustdoc工具自动生成文档

/// `hello` is a function that prints a greeting that is personalized based on/// the name given.////// # Arguments////// * `name` - The name of the person you'd like to greet.////// # Example////// ```rust/// let name = "Steve";/// hello(name); // prints "Hello, Steve!"/// ```fn hello(name: &str) {    println!("Hello, {}!", name);}

end!

转载于:https://my.oschina.net/uniquejava/blog/361287

你可能感兴趣的文章
我的友情链接
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
UIWebView加载html网页时使用缓存和清空缓存
查看>>
我的友情链接
查看>>
设计模式学习笔记(六)之策略模式(Strategy)
查看>>
python运行spark脚本程序
查看>>
我的友情链接
查看>>
通过libvirt使用ceph块设备
查看>>
优秀交互设计师成长指南
查看>>
SDN网络系统之MiniNet的安装与使用
查看>>
java的Iterator和listIterator的区别
查看>>
服务器虚拟化的好处
查看>>
AxureRP7.0基础教程系列 部件详解 表格Tabel
查看>>
ORACLE之sql语句优化
查看>>
一台机器同时启动多个tomcat
查看>>
Java中的多线程
查看>>
Zookeeper不适合注册中心的原因
查看>>
内核是什么
查看>>
标签的语义
查看>>