シェア
ぐは
2020年8月13日 05:10
学生に課すなら自分でも少しはやらないと仕事で授業を持っている身です、メインとはいえませんが、プログラミングを教える科目に今年から参加しています。そこでの主戦場はJavaです。Javaのことを学生より半歩だけ先に知っておく必要があるのは間違いないのですが、別にJavaという言語に固執する気は個人的にはまるでありません。ということで今手を出してるのはRustです。ある意味で次世代のCともいえるRu
2020年9月21日 10:13
Rust100本ノック中の気づきみたいなモノです。たとえば"abc"を"cba"にするような変換ですが、String::reverseでもないかと思ったら案外無かったり。んじゃ、どうしようかと言うことで少し分解して考えたらこうなるわけで…1. 文字単位で分解する2. 分解したモノを反転してくっつける前者については、String::chars()というものがあり、イテレータとして機
2020年9月21日 07:32
期末試験対応とかでひーひーしてたのでちょっと休んでましたが再開。今朝はNo55,56をやってました。ここに来て(休んで手のど忘れも手伝って)、数値を文字列にする方法を忘れてしまっていたのですが、個人的にはまだ不可解という感じです。 let test_a = (100).to_string(); // OK(数字→文字列 は基本コレでOK) let num = 100; let te
2020年9月6日 20:15
ということで継続中のRustで100本ノックです。今週もちょっとずつ進めており、テストを導入することで、サンプルの入出力の通りのデータが得られるかを評価してからmainを書く週間をほんのり獲得しようとしてます。この能力は、本業?(授業)のJavaでもテストを意識して書く(=仕様を決める)能力につながるとほんのり期待してます。で、No.52にて閏年の計算を行うロジックというものを再認識してま
2020年8月30日 06:35
おはようございます、100本ノック、継続中です。中級編に入り、ちょっと難しいロジックの登場です。自分でも『これでいいのか?』と思ってしまうようなことが出てきそうなので、サンプルをベースにテストを組み込んで安心感を高めたいと考えるようになってきました。素材はNo.44(円とドル円を渡してドル・セントを計算するもの)です。Rustでは、testというアノテーション(というの?)が用意されていて
2020年8月24日 16:41
Rustで100本ノック、本日は39まで完了し、初級編終了です。配列添え字の範囲をチェックしなくて良いという緩い設計のためか、難しいコードにならずに楽です。ここに来てちょっとハマったのが、入力で添え字番号をもらってその値を出すという問題でした。// No.035fn main() { let array = [3, 7, 0, 8, 4, 1, 9, 6, 5, 2]; let n
2020年8月21日 04:56
継続中のRustで100本ノック、No.34まで完了しています。この辺りはループに関する問題ですが、インデックス付きループにおいて特定要素を出力しないという形で配列の中を走査して処理する案件が多いです。今時のものならfilter的なモノを用いて除外してから出力というのがトレンドなのでしょうか# Javaっぽい疑似表現ですarray.filter( x -> x != number ).fore
2020年8月16日 10:12
用語的にはライブラリクレートですね。プロンプトを出して文字列を入力させ、数値として取得させようというコードはNo.5あたりからちょこちょこ使っているため、コードに何度も含めておくのはしのびないですね。ということで良くあるのが「ライブラリ」という形で分離しておいて、必要なときに取り込むというものです。ここでは、「文字列を入力させ、数値を返す」コードをライブラリに追い出して、差し替えてみたいと思い
2020年8月16日 11:22
準備編では、内包するライブラリクレートの作り方を出してくれてました。今度はライブラリクレートに実際のコードから移していきます。大元のコード大元のコードとして、No.005を使ってみます。コードはこんな感じが初期状態になります。use std::io::{self, Write};fn get_number_with_prompt(prompt: &str) -> i32 { pri
2020年8月18日 05:55
100本ノックを今朝はちょっと進めてます。毎日というのもちょっと難しいけどね。タイトル絵は配列よろしく並んでるペンギンさん。ちょっと涼しくなると良いな…で、No.17にていよいよ配列のお出まし。Rustでは配列はスタック上に取られる一般的な配列表現のほかにも、ベクタと呼ばれるヒープ上の表現が登場します。こちらはベクタということもあって伸び縮みできるみたいです。問題はアクセス方法で、単純な配
2020年8月15日 09:41
本日の100本ノックメモ2本目、文字列を数値にしたいということで、このあたりはNo.5とかで登場してきました。いわゆる型変換はasを使って行えることはそれなりにわかってます。let f = 3u8 as f32; // 整数をf32へだからといって、文字列を直接数値変換するのは存在しませんのでエラーになります。この辺りはPythonやRubyならありそうなものですが、文字列をメモリ
2020年8月15日 08:48
ということで100本ノックやってますが、その中でキーボード入力というのが発生してきます。初心者的なコードではお約束ですね… ここではそのときに遭遇したことのおさらいリプレイです。これが最良かはともかく、基本的な処理として、std::io を使います(というかググって確認してました)。クラス的なモノ?fn main() { println!("何か入力を"); let mut da