もう肌寒いけどRustといったらカニ 前回の記事では,Rustの構造体などを学んだ. 今回はジェネリック型というものについて学ぶ.C++のテンプレートに少し似ている. ジェネリック型 Option型 Result型 Result型を返すmain関数 ジェネリック型 構造体や列挙型で任意の型を受け取れるようにしたもの.自動で型推論してくれるし,::<T>を使って明示的に型を指定することもできる. struct Rectangle<T> { x: T, y: T } fn main(){ let rec_int = Rectangle{x:2, y:5}; let rec_float = Rect…
【2024年11月】Linuxカーネルをビルドしてパッケージ化してみた
秋はホットコーヒー片手に論文だよね Linuxカーネルをソースからビルドして,パッケージ化するところまでのメモ. 以下,Ubuntu 22.04 LTSで実験済み. 準備 Linuxカーネルのソースコードをダウンロード カーネルコンフィグの設定 .configファイルの修正 .configファイルをビルド対象カーネルに合わせる カーネルのビルド カーネルパッケージの作成 カーネルパッケージのインストール GRUBの設定 参考にしたwebサイト 準備 まず,必要なものをaptでインストールする. build-depを動かすためには,/etc/apt/sources.listのファイルでdeb-s…
カニ可愛い,そして美味い 前回の記事では,Rustの変数や基本型,制御構文を勉強した. 今回は,構造体などのデータ構造を学ぶ. 構造体 タプル構造体 ユニット構造体 メソッド 列挙型 構造体 Rustの構造体はC言語とそんなに変わらないように見える. データの配置もメモリ上に隣り合っているとのこと. 構造体の要素のことをフィールドといい,オブジェクトのフィールドには.演算子でアクセスできる. 構造体をインスタンス化する際は,各フィールドを束縛する必要がある. このとき,可変のインスタンスを作成すると,全てのフィールドが可変となる. #![allow(dead_code)] struct Hum…
Rustのマスコットキャラって何でカニなの 前回の記事で,私のmacOS上にRustの開発環境構築し,HelloWorldまで確認した. 今回はTour of Rustというチュートリアル的なものを動かしながら,Rustという言語への理解を深めていきたい. なお,Rustの公式ドキュメントもあるので,合わせて参照していきたい. 変数 変数宣言 可変/不変な変数 基本の型 型の変換 定数 配列 関数 複数の戻り値 空の戻り値 制御構文 if式 loop式 while式 for式 match式 おわりに 変数 変数宣言 変数宣言は次のようにletを使う.これは関数型言語でいう変数への値の束縛に相当…
【macOS】Rust開発環境構築からHelloWorldまでやってみた【2024年11月】
Rustといったらカニ 今更になってRustに興味を持ち始めた. それはこんなニュースを目にしたからだ. あのDARPAがC言語からRustへの変換ツールを作るらしい. 似たようなc2rustは既にあるが,より高精度にメモリ安全なコードを出力したいということだろうか. 何事もHello, Worldから始めるので,とりあえず環境構築してやってみよう. 私の環境は,以下の通りである. macOS Sequoia (バージョン15.1) Apple M2 チップ rustupのインストール cargoでHelloWorldプロジェクトの作成 まとめ rustupのインストール Rustはrustu…
「ブログリーダー」を活用して、博士ちゃんさんをフォローしませんか?