PythonとRustのコーディング対応メモ

概要

Pythonでこう書いていたものをRustだとどう書くのだろう?という視点で整理していきます。随時加筆していきます。

対応

パッケージ管理

pythonは環境単位でパッケージを管理しますが、rustではプロジェクト単位でパッケージを管理するようです。具体的にはそれぞれのパッケージにはCargo.toml(requirement.txtに近い)というファイルが置かれ、ここに必要なライブラリを記載してビルドします。

#python
pip install X
#rust
#Cargo.tomlの[dependencies]にXを記載してから
cargo build

ライブラリのインポート

importに関してはrustはそもそもする必要がないようです。またライブラリではなくクレートと呼ぶそうです。

#python
import X
#rust
#import不要

fromに相当する部分は2つのコロン(::)で書きます。

#python
from X import Y
#rust
use X::Y;

インスタンス作成

rustではnewで呼び出します。

#python
x = X()
#rust
x = X::new();

メソッド呼び出し

インスタンスメソッド以外のメソッドの呼び出しは2つのコロン(::)になりますが、インスタンスメソッドはpython同様にドット(.)で呼び出します。

#python
X.function() 
#rust
X::function(); #インスタンスメソッド以外
x.function(); #インスタンスメソッドの場合

文字列出力

どちらも似たようなコードで書けます。

#python
print('test')
#rust
println!('test')

変数を含めて出力したい場合はこんな感じ。

#python
print("X{}".format(Y))
#rust
println!("X{}", Y)

整理前

#python
import time
time.sleep(1)
#rust
use std::thread;
thread::sleep(Duration::from_secs(1))

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA