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 に戻り値の型が指定されていないが、return 文で c 変数を返している

正しいコード:

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)
}
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。