マガジンのカバー画像

Rust100本ノック

13
Rustの勉強をちょこちょこしている話です。 もしこのお話がみなさんのRustの学習に役立つことがあれば、投げ銭(サポート)していただけるとうれしいです。
運営しているクリエイター

#プログラミング

お勉強: 100本ノック on Rust

学生に課すなら自分でも少しはやらないと仕事で授業を持っている身です、メインとはいえませんが、プログラミングを教える科目に今年から参加しています。そこでの主戦場はJavaです。Javaのことを学生より半歩だけ先に知っておく必要があるのは間違いないのですが、別にJavaという言語に固執する気は個人的にはまるでありません。

ということで今手を出してるのはRustです。ある意味で次世代のCともいえるRu

もっとみる
Rustで100本ノック: match式悩み中

Rustで100本ノック: match式悩み中

継続中のRustで100本ノック、No.34まで完了しています。この辺りはループに関する問題ですが、インデックス付きループにおいて特定要素を出力しないという形で配列の中を走査して処理する案件が多いです。今時のものならfilter的なモノを用いて除外してから出力というのがトレンドなのでしょうか

# Javaっぽい疑似表現ですarray.filter( x -> x != number ).fore

もっとみる
Rust100本ノックより: ライブラリの作り方(準備編)

Rust100本ノックより: ライブラリの作り方(準備編)

用語的にはライブラリクレートですね。プロンプトを出して文字列を入力させ、数値として取得させようというコードはNo.5あたりからちょこちょこ使っているため、コードに何度も含めておくのはしのびないですね。ということで良くあるのが「ライブラリ」という形で分離しておいて、必要なときに取り込むというものです。

ここでは、「文字列を入力させ、数値を返す」コードをライブラリに追い出して、差し替えてみたいと思い

もっとみる

Rust100本ノックより: ライブラリの作り方(追い出し編)

準備編では、内包するライブラリクレートの作り方を出してくれてました。今度はライブラリクレートに実際のコードから移していきます。

大元のコード大元のコードとして、No.005を使ってみます。

コードはこんな感じが初期状態になります。

use std::io::{self, Write};fn get_number_with_prompt(prompt: &str) -> i32 { pri

もっとみる
Rustで100本ノック: 配列へのアクセス

Rustで100本ノック: 配列へのアクセス

100本ノックを今朝はちょっと進めてます。毎日というのもちょっと難しいけどね。タイトル絵は配列よろしく並んでるペンギンさん。ちょっと涼しくなると良いな…

で、No.17にていよいよ配列のお出まし。Rustでは配列はスタック上に取られる一般的な配列表現のほかにも、ベクタと呼ばれるヒープ上の表現が登場します。こちらはベクタということもあって伸び縮みできるみたいです。

問題はアクセス方法で、単純な配

もっとみる
Rustで100本ノック: 文字列を数値にする話

Rustで100本ノック: 文字列を数値にする話

本日の100本ノックメモ2本目、文字列を数値にしたいということで、このあたりはNo.5とかで登場してきました。

いわゆる型変換はasを使って行えることはそれなりにわかってます。

let f = 3u8 as f32; // 整数をf32へ

だからといって、文字列を直接数値変換するのは存在しませんのでエラーになります。

この辺りはPythonやRubyならありそうなものですが、文字列をメモリ

もっとみる
Rustで100本ノック: 標準入力からの文字入力と数値変換

Rustで100本ノック: 標準入力からの文字入力と数値変換

ということで100本ノックやってますが、その中でキーボード入力というのが発生してきます。初心者的なコードではお約束ですね… ここではそのときに遭遇したことのおさらいリプレイです。

これが最良かはともかく、基本的な処理として、std::io を使います(というかググって確認してました)。クラス的なモノ?​

fn main() { println!("何か入力を"); let mut da

もっとみる