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 の戻り値の型が指定されていませんが、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)
}