Go-Ethereum

映射中的預設字元串值用於什麼?

  • January 17, 2017

例如,我有這樣的契約:

contract example {
   mapping (uint => string) map;

   function example () {
       map[123] = "123";
   }

   function return1 () returns (string) {
       return map[123];
   }

   function return2 () returns (string) {
       return map[1];
   } 
}

當我打電話時return1,它顯然會返回'123',但是會發生什麼return2

按原樣使用您的程式碼,在呼叫return1()and時return2(),您將必鬚髮送交易,並且您將返回交易雜湊。如果你return1()從另一個合約呼叫你的,你的返回值將是"123". 如果從另一個合約呼叫return2(),您的返回值將是一個空字元串""。請參閱以下螢幕:

在此處輸入圖像描述

如果我將關鍵字添加constantreturn1()andreturn2()聲明,return2()將返回空字元串""。請參閱以下螢幕:

在此處輸入圖像描述

你應該得到一個空字元串,就好像你已經完成了

function return2 () returns (string) {
  string my_string;
  return my_string;
}

引用自:https://ethereum.stackexchange.com/questions/9725