rust笔记一

本文介绍Rust语言的基础安装与配置,包括使用curl进行安装及卸载的方法。文章详细讲解了如何编写第一个Rust程序,解释了Rust语言的基本概念如宏、表达式、语句等,并介绍了Cargo作为构建工具的作用及配置文件Cargo.toml的使用方式。此外还涵盖了变量绑定、函数定义、条件判断等内容。

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 <you@example.com>" ]

[[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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值