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 つのエラーがあります:
- パラメータ b に型が指定されていない
- 関数 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)
}