Variable statique de solidité?

sas

Variable statique de solidité?


Je définis un équilibre comme suit:

 mapping ( address =>   uint [])   Energy_Balance 

pour garder l’historique de chaque transaction. J’ai défini sa nouvelle valeur comme suit:

 First   Transaction :  balances [ owner ][ 0 ]   =  balances [ owner ][ 0 ]   +  value ;  
 Second   Transaction :  balances [ owner ][ 1 ]   =  balances [ owner ][ 1 ]   +  value ; 

Maintenant, je veux définir un counter uint telle sorte qu’il puisse conserver sa dernière valeur chaque fois qu’il est augmenté d’une unité comme suit:

 balances [ owner ][ counter ]   =  balances [ owner ][ counter ]   +  value 

Si je définis le compteur comme suit, est-il correct en solidité et peut-il conserver sa dernière valeur ?

 static   uint  counter =   0 ; 
 function  myFunction ( uint  value )   { balances [ owner ][ counter ]   =  balances [ owner ][ counter ]   +  value ; counter =  counter + 1 ; 
 } 

Réponses


 Rob Hitchens B9lab

Vous pouvez simplifier.

 function  myFunction ( uint  value )   { balances [ owner ]. push ( value ); 
 } 

En outre, quelques getters utiles:

 function  getOwnerValueCount ( address owner )  returns ( uint  count )   { 
   return  balances [ owner ]. length ; 
 } 

Ajoutez du public à votre cartographie pour Energy_Balances et vous obtiendrez un getter « gratuit » environ:

 function   Energy_Balances ( address owner ,   uint  row )   public  view returns ( uint )   { 
   return   Energy_Balances [ owner ][ row ]; 
 } 

En plus: il serait plus conventionnel d’utiliser les energyBalances énergétiques energyBalances .

J’espère que cela aide.

sas

Merci. voulez-vous dire en cas d’utilisation de « energyBalances [propriétaire] .push (valeur); » Je n’ai pas besoin de définir energyBalances comme un tableau comme celui-ci: mapping (address => uint []) energyBalances?

sas

Ai-je raison ? Merci

Rob Hitchens B9lab

En supposant que vous l’ayez fait. mapping (address=>uint []) signifie qu’il y a un tableau pour chaque adresse. push ajoute une autre ligne, vous n’avez donc pas besoin de gérer le compteur vous-même.

 

#de, Solidité, statique?, variable

 

yahoo

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *