PythonistaがRustを学ぶ

この記事は随時更新されます。

教材

The Rust Programming Language (https://doc.rust-jp.rs/book/second-edition/)

Rustの文法をPythonに置き換えて理解する

ここには正しいことしか書かない

関数定義

Rust:

fn main() {

}

Python:

def main():

標準出力

Rust:

println!("Hello, world!");

Python:

print("Hello, world!")

インデント

共通: スペース4つ

パッケージマネージャ

Rust: Cargo

Python: pip

ライブラリのインポート

Rust:

use std::io;
extern crate rand;

FIXME: 現時点で詳細や違いはわかっていない

Python:

import os

変数定義

Rust:

let foo = 5;

Python:

foo = 5

文字列のフォーマット

Rust:

println!("{}", 変数名);

Python:

print("{}".format(変数名))
print(f"{変数名}")

数字にキャスト

Rust:

let mut guess = "10\n";
let guess: u32 = guess.trim().parse()
    .expect("Please type a number!");

Python:

guess = "10\n"
guess = int(guess)

無限ループ

Rust:

loop {
}

Python:

while True:

ループからの脱出

共通: break

間違っていたこと

ここに間違えていたことをまとめる

Pythonにはない概念のメモ

マクロ

  • 実行するときはマクロ名!(引数)

  • 関数を叩くのと同じ感じで実行出来る

  • 関数のオーバーライドみたいな感じで自分で好きに出来る

コンパイル

行末

プロジェクト自動作成・管理

変数

  • 基本immutable

  • let mutで定義するとmutable

変数の参照

  • &変数名で参照出来る