3

impl を使用した次の構造体があります。

#[near_bindgen]
#[derive(Default, Serialize, Deserialize, BorshDeserialize, BorshSerialize, Debug)]
pub struct MyStruct {
    owner: String
}

#[near_bindgen(init => new)]
impl MyStruct {
    fn new() -> Self {
        Self {
             owner: "bob".to_string()
        }
    }

    fn get_owner(&self) -> String {
         return self.owner;
    }
}

次に、次を使用してコントラクトをデプロイしますnear deploy my_contract --masterAccount myAccount

ニアシェルを使用して get_owner を呼び出すと、期待されるのではなくnear call my_contract get_owner --accountId=myAccount常に返されます。"""bob"

展開時に新しいメソッドが呼び出されないようです。

4

2 に答える 2

2

通常、イニシャライザ関数は、コントラクトの初期化をパラメータ化する必要がある場合に使用されます。パラメータがない場合は、Defaultトレイトを実装するだけです:

impl Default for MyStruct {
  fn default() -> Self {
    Self {
      owner: "bob".to_string()
    }
}}
于 2019-11-01T18:06:59.877 に答える