🐈

Rustに挑戦してみた

に公開

Slackには開発部向けの「ゆる報」というチャンネルがあるのですが、
今日唐突にそれは投稿されました。

🥺「イベント被り... 誰か...(参加してきて...)」

https://estie.connpass.com/event/296236/

>Rust、何もわからない<

なんだこの超気になるネーミングのイベントは、、、
と思い気付いたら参加申し込みしていたのですが、

わたし Rust 触ったことない なぁ🤔

このイベントは「Rustに興味がある方」でも参加できそうなのですが、
概要知りたいのでサクサク入門してみようと思います!!

https://zenn.dev/collabostyle/articles/bf16ceeaddc628

環境構築は↑しょーたが以前投稿してるので、そちらをご参照あれ🍜

Rust ってなにさ

C言語やC++に替わる言語、それがRustです。
C++は1979年誕生と言われていますが、C言語は1972年誕生と
登場から50年が経過しています。

Rustは2015年に誕生したので、比較的新しい言語になってきますね🥸

補足1:C言語

C言語はOSやロボット/組み込み系で今も活躍している言語です。
ただし、「メモリ」や「ポインタ」の制御が必要なので、習得には苦労します。
※特にポインタは何度本を読んでも理解までに時間を要しました、、、

気になる方は以下の書籍がオススメです。
https://www.amazon.co.jp/dp/4797372788/

補足2:C++

C++はC言語にオブジェクト指向を持たせ、拡張した言語です。
C言語と同じく、OSや組み込み系でも利用され、パッケージの開発にも活用されます。

よくC#と比較され(ような気がする)ますが、C#とC言語/C++は異なります。

豆知識:C#

C#は2002年に誕生したオブジェクト指向の言語です。
プログラミング初学者でも学習しやすいと思います。
Javaと構文が似ているので、C#ができればJavaも扱えるようになります。

C#はWindowsと相性がよいため、Windows向けのデスクトップアプリや
Unityを使ってゲーム開発をすることも可能です。

Visual StudioをダウンロードすればD&DでGUIアプリを
作ることができるので楽しいですよ🐣

Rust のよさ

詳しく書かれている記事がありました🤓
https://www.softbanktech.co.jp/corp/hr/recruit/articles/53/

マルチスレッドで色々なプログラムを同時に処理できたりするだけでなく、
その処理の速さや安全性についても評価が高い言語です。

色々試してみる

今回はRust Playgroundを使ってやっていきです。

定番の「Hello World!」

fn main() {
    println!("Hello, world!");
}

変数に定義した値を出力

fn main() {
    let value = 7;
    println!("代入された値は「{}」です。", value);
}

データ型

特筆したいことだけ記載します。

String

みんな大好き(?)文字列型。

fn main() {
    let value = "いえ~~い!";
    println!("Stringとして入力された値は「{}」です。", value);
}

char

ユニコードの1文字を表現する。

fn main() {
    let value = '🥺';
    println!("charとして入力された値は「{}」です。", value);
}

str ※これむずい

C言語のポインタに苦しんだ記憶を思い出させるやつ。
値を参照渡しするやつです。

fn main() {
    let s = "ぼくStringだよ";
    let ref_s = &s;
    println!("ref_sに入っている値は「{}」です。", ref_s);    // ぼくStringだよ が出力されるよ
}

変数の宣言

letで定義しますが、特にぐぐらず
ぽちぽちしてたらハマりました。。

fn main() {
    let value = "俺のターン!";
    value = "上書きしてやる!";
    println!("valueに入っている値は「{}」です。", value);
}

↑こうやって書いたらエラーになって、しばらく戦ってしまいました。
このままの状態で変数の再代入はできないのですね🙇

再代入できるようにするには、こうします。

fn main() {
    let mut value = "俺のターン!";
    value = "上書きしてやる!";
    println!("valueに入っている値は「{}」です。", value);
}

ソースはしょーたの記事です。ありがとう。

https://zenn.dev/collabostyle/articles/efbe2a89cf7c10

しょかん

想定していたより駆け出しムズイと思ったのが感想です…🗿
メイン関数、ポインタの概念、Enumもありますし
「Rustできます!」と胸を張って言えるようになるまでには
結構時間かかりそうな雰囲気がありました。

でも、
独自の概念が結構多い=クセのある言語=苦労する=でっけー壁=楽しい
みたいに自分の心に秘められた何かを燃やしてくれるような言語、それがRust。(何)

だと思いマス🍜
今度は環境構築して、Rustのイベントに参加して、またリベンジします。

コラボスタイル Developers

Discussion