メモ1

3652 ワード

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
.ハロー
fn main() {
 println!("Hello, world!");
}
私はgeditor tabを2つの格にインデントしました。多すぎるのが嫌です。この記事はjavaとは違っています。ここは特に何もありません。ここはマクロです。rustはexpression orented langで、は、表式の終了を表します。
rustc mann.rsは直接mainまたはmain.exe実行ファイルを生成して、対象機器はrust環境をインストールせずに実行できます。
3 CargoはjavaのMavenに相当します。Man.rsをsrcに捨てます。配置ファイルのpom.xmlはCago.tomlに対応します。
[package] 
name = "hello_world" 
version = "0.0.1" 
authors = [ "Your name <[email protected]>" ]

[[bin]] 
name = "hello_world"
トムが書いたlangをtomlといいます。ここには二枚の表があります。第一部分はmeta情報で、第二部分はブリーフィングではなく、binaryで、コンパイル用cargo buildとmavenで同じように、targtディレクトリに出力します。mavenと同じです。
今後はrustcを使わずcargo buildで命令します。
4変数バインディングlet x=5 i。ここのiは彼が虚数であることを示さず、彼がinteger let x:int=5であることを示しています。複数のlet(x,y)=(1 i,2 i)let変数を結びつけることができます。デフォルトはfinalです。scalaのvalと同じで、可変ですか?let mut x:int=5(ちょっと煩わしいです!)
let x:int;この時xは初期化されていません。直接使用できません。最後は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&Sttements
二つの種類のstatementsしかないです。他は全部expressionです。その中でexpressionは戻り値があります。statementsは戻り値がありません。最初の種類は戻り値がないstatementsです。let文はこのように書いてはいけません。
let x = (let y = 5i); 
2番目の戻り値は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