StarknetAstro

StarknetAstro

10_Cairo1.0中のfunction(関数)

10_Cairo1.0 中の function (関数)#

この記事で使用されている Cairo コンパイラのバージョン:2.0.0-rc0。Cairo は急速に更新されているため、異なるバージョンの構文にはわずかな違いがあるかもしれません。将来的には、記事の内容を安定したバージョンに更新します。

基本的な使い方#

関数は、どのプログラミング言語でも欠かせない基本的な構成要素です。関数には通常、関数名、パラメータ、および戻り値が含まれます。Cairo では、関数名と変数名は「スネークケース」で命名されることが一般的です。例えば、 my_function_name のようになります。

use debug::PrintTrait;

fn another_function() {
    'Another function.'.print();
}

fn main() {
    'Hello, world!'.print();
    another_function();
}

関数の呼び出し方も他の多くの言語と同じです。another_function() は通常の関数の呼び出し方であり、'Hello, world!'.print() はトレイト内の関数の呼び出し方です。

パラメータと戻り値#

Cairo は静的型付け言語であり、関数の各パラメータと戻り値には明示的に型を指定する必要があります。指定しないとエラーになります。例えば:

fn add(a: felt252, b) {
    let c = a + b;
    return c;
}

fn main() -> felt252 {
   add(3, 5) 
}

上記のコードには 2 つのエラーポイントがあります:

  1. パラメータ b の型が指定されていません
  2. 関数 add の戻り値の型が指定されていませんが、c 変数を返すために return 文が使用されています

正しいコード:

fn add(a: felt252, b: felt252) -> felt252{
    let c = a + b;
    return c;
}

fn main() -> felt252 {
   add(3, 5) 
}

戻り値の文#

return を使用して明示的に戻り値を返すこともできますし、セミコロンを付けない文で戻り値を返すこともできます。例:

fn add(a: felt252, b: felt252) -> felt252 {
	// a + b を返す
    a + b
}

fn sub(a: felt252, b: felt252) -> felt252 {
    return a - b;
}

fn main() -> felt252 {
   add(3, 5);
   sub(11, 7)
}
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。