Rust実践講座 04:所有権・Move・Copy・Clone
到達点は、値を渡した後に使えるかを予測することです。前提は第03回です。 誰が資源を片付けるか Stringは文字列データを所有します。所有する値を別の変数へ移すと、元の変数からは使えなくなる場合があります。これをMoveと呼びます。同じ資源を二度解放したり、解放後に参照したりしないよう、コンパイラが利用関係を確認します。 コードブロック。 src/main
12 件の記事
到達点は、値を渡した後に使えるかを予測することです。前提は第03回です。 誰が資源を片付けるか Stringは文字列データを所有します。所有する値を別の変数へ移すと、元の変数からは使えなくなる場合があります。これをMoveと呼びます。同じ資源を二度解放したり、解放後に参照したりしないよう、コンパイラが利用関係を確認します。 コードブロック。 src/main
到達点は、入力と戻り値の型を明示し、境界を含む処理を組み立てることです。前提は第02回です。 関数の入口と出口を決める fnの引数には型を書き、戻り値は矢印の後に書きます。関数の末尾の式が戻り値になります。早く処理を終えたい場所ではreturnも使えます。 コードブロック。 src/main.rsで実行すると送料は500、500、0、合計1000、最後は30
到達点は、変更できる値を明示し、数値の失敗を予測することです。前提は第01回です。 変更は明示する letの束縛は既定では再代入できません。更新したければmutを付けます。同じ名前をletで宣言し直すシャドーイングは、再代入とは別で、型を変えることもできます。どちらも使えますが、読み手が値の流れを追えるように選びます。 コードブロック。 src/main.r
この講座は、Rustの初歩から所有権、エラー処理、並行処理、保存できるCLIまでを扱います。教材はRust 2024 Editionを使います。対応するRust 1.85以降のstableツールチェーンを用意してください。版の番号とEditionは同じものではありません。 道具の役割 rustcはコンパイラ、Cargoは依存管理、ビルド、テストなどをまとめる
到達点は、データの関係に合う入れ物を選ぶことです。前提は第03回です。 順番、対応、重複を分ける listは順番を持つ列、dictはキーから値への対応、setは重複のない集合です。tupleは変更不能な列で、複数の値をまとめて返す用途にも使います。選択の基準は短く書けるかではなく、何を保存し何を検索したいかです。 コードブロック。 main.pyで実行すると
到達点は、入力、出力、許される範囲を決めて関数を書くことです。前提は第02回です。 関数に一つの判断を任せる 送料を求める関数なら、購入額を受け取り、送料を返すと決めます。表示や入力まで同じ関数に詰め込まなければ、別の画面やテストから再利用できます。defの後のインデントが関数の範囲です。 コードブロック。 main.pyとして実行すると、送料は500、50
到達点は、代入と複製の違いを説明し、数値の型を選ぶことです。前提は第01回です。 名前はオブジェクトを指す Pythonの変数は、オブジェクトへ名前を結び付けるものとして考えます。代入だけではリストは複製されません。int、str、tupleなどは変更不能、list、dict、setなどは変更可能です。ただしtupleの中に可変リストを入れると、そのリストの
この講座は、Pythonを初めて使うところから、テストと保存機能を備えたアプリを作るところまで進みます。教材の対象はPython 3.11以降です。3.11より新しい構文に依存しない形を基本にします。 実行するPythonを確かめる Pythonはソースファイルを実行環境へ渡して動かします。処理系の内部ではバイトコードなども使われるため、「コンパイルという段
この回では、文字列の比較、配列の範囲、参照の共有を扱います。前提は第03回です。 同じ内容と同じ物は違う プリミティブ型のintなどは値そのものを比較できます。Stringのような参照型で == を使うと、同じオブジェクトへの参照かを比較します。文字の並びを比較したければequalsを使います。たまたま同じ結果になった実験だけで判断しないことが大切です。 コ
この回では、条件を整理し、同じ処理をメソッドへ切り出します。前提は第02回です。 入力と出力を先に書く 「送料を計算する」を実装するなら、購入額が入力、送料が出力です。購入額が5000円以上なら無料、それ未満なら500円、負の金額は不正と決めます。境界の5000円を含むのかが、記号選びより先に必要な情報です。 コードブロック。 Main.javaで実行すると
この回では、値に合う型を選び、整数の割り算や桁あふれを予測します。前提は第01回です。 型は操作の約束 intは32ビット整数、longは64ビット整数です。doubleは近似的な小数、booleanは真偽、Stringは文字列です。変数には宣言した型に合う値を入れます。varは初期値から型を推論する構文であり、途中で自由に型を変える仕組みではありません。
この回の到達点は、プログラムを自分で実行し、ソースコード・コンパイル・実行環境の違いを説明できることです。前提知識はありません。本講座ではJava 21の機能を基準にします。最新版という意味ではなく、教材を再現するための基準です。 コードが動くまで ソースコードは人が読む設計図です。javacというコンパイラが型や文法を検査して、JVMが扱うバイトコードへ変