🍣

[Astar]コントラクト備忘録⑦( 戻り値にResult型を使う)

2023/02/23に公開

こちらの知見がたまったので、備忘録として残します。

1 概要

  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