🍣
[Astar]コントラクト備忘録⑦( 戻り値にResult型を使う)
こちらの知見がたまったので、備忘録として残します。
1 概要
- Result型の実装
2 内容
こちらのメッセージを作成しました。
返り値として、Result型を返しています。
/// divide
#[ink(message)]
pub fn divide2(&self, dividend: i32, divisor: i32) -> Result<i32, String> {
if divisor == 0 {
return Err("Cannot divide by zero".to_string());
}
Ok(dividend / divisor)
}
なお、Result型はこのようにOKの時と、エラーの時で、型を変えることができます。
https://doc.rust-lang.org/std/result/enum.Result.html
今回の場合は、OKの場合はi32型、エラーの場合はString型が返っています。
結果を見ると、このように、divisor(割る値)が0でない場合は通常の計算を行い、
0の時はエラー文を返しています。
Shibuya
YDmDCos6pGXu3ef4dyg4Vk2yx5HPNRtUoCnzvP83wpueUAf
今回は以上です。
Discussion