Mojo Academy · レッスン

パラメーターと引数

コンパイル時の値と実行時の値を区別します

レッスン 1/413 ステップ

「パラメーターと引数」はCoddyKit上の無料Mojo Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはMojo Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Mojo Academyコースには全4レッスンが含まれています。

2 種類の入力

Mojo の関数は 2 種類の入力を受け取れます。コンパイル時に決まるパラメーターと、実行時に決まる引数です。この違いを知ることが重要です。

引数は実行時に存在する

引数は、プログラムの実行時に渡す通常の値です。実際の数値は、関数を呼び出すたびに変わる可能性があります。

fn square(x: Int) -> Int:
    return x * x

パラメーターはコンパイル時に存在する

パラメーターは、プログラムの実行前にコンパイラーがすでに認識している値です。固定され、生成されたコードに直接組み込まれます。⚙️

角かっこと丸かっこ

Mojo では見た目にも区別されます。パラメーターは角かっこに入れ、引数は使い慣れた丸かっこに入れます。

fn repeat[count: Int](msg: String):
    print(msg)

シグネチャを読み取る

repeat[count: Int](msg: String) では、count はコンパイル時に設定され、msg は実際に呼び出すときに後から渡されます。

コンパイル時とはより早い段階

コンパイル時とは、Mojo がコードを変換するタイミングであり、実行よりずっと前の段階です。パラメーターはこの早い段階で決まります。

分ける理由

コンパイル時の値と実行時の値を分離すると、実行時にはできない方法でコンパイラーがコードを特殊化・最適化できます。

パラメーターを渡す

呼び出し箇所でパラメーターを角かっこに入れて指定します。引数はその直後の丸かっこに入れて渡します。

repeat[3]("hi")

パラメーターは既知でなければならない

パラメーターの値はコンパイル時定数でなければなりません。プログラムの実行中に計算した数値を渡すことはできません。

おなじみの例

組み込みのSIMD型は、要素型と幅をパラメーターとして受け取り、その内部に実行時の値として実数を保持します。

var v = SIMD[DType.int32, 4](1, 2, 3, 4)

メンタルモデル

2 つのスロットを思い浮かべてください。角かっこのスロットはコンパイル時の情報、丸かっこのスロットは実行時のデータ用です。Mojo は両者を大きく異なるものとして扱います。

簡単な確認

Mojo におけるパラメーターと引数の違いを説明してください。

まとめ

違いを学びました。パラメーターは角かっこに入れるコンパイル時の値で、引数は丸かっこに入れる実行時の値です。この分離が Mojo の速度を支えます。🎯

無料で開始

AI チューターと学ぶ Mojo — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「パラメーターと引数」レッスンは無料ですか?

はい。「パラメーターと引数」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Mojo Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Mojo Academyコースには全4レッスンが含まれています。

「パラメーターと引数」で何を学びますか?

コンパイル時の値と実行時の値を区別します ブラウザで直接実行するハンズオンコードでMojo Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Mojo Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのMojo Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「パラメーターと引数」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このMojo Academyレッスンでコードを書いて実行できますか?

はい。すべてのMojo Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. パラメーターと引数
  2. パラメーター化された関数
  3. パラメーター化されたStruct
  4. コンパイル時処理が高速化につながる理由
← Mojo Academyに戻る