web-dev-qa-db-fra.com

TypeError: l'emplacement des données doit être "mémoire" pour le paramètre de la fonction, mais aucun n'a été donné

solidité du pragma ^ 0.5.0;

contrat memeRegistry {

string url;
string name;
uint timestamp;

function setmeme(string _url,string _name, uint _timestamp) public{
    url = _url;
    name = _name;
    timestamp = _timestamp;

}   

}

2

L'emplacement explicite des données pour toutes les variables de type struct, array ou mapping est maintenant obligatoire. Ceci est également appliqué aux paramètres de fonction et aux variables de retour.

Ajouter memory après string

function setmeme(string memory _url, string memory _name, uint _timestamp) public{

vérifiez ici pour Solidity 0.5.0. modifications https://solidity.readthedocs.io/en/v0.5.0/050-breaking-changes.html

5
k1ck
//The version I have used is 0.5.2

pragma solidity ^0.5.2;

contract Inbox{


string public message;

//**Constructor** must be defined using “constructor” keyword

//**In version 0.5.0 or above** it is **mandatory to use “memory” keyword** so as to 
//**explicitly mention the data location**

//you are free to remove the keyword and try for yourself

 constructor (string memory initialMessage) public{
 message=initialMessage;
 }

 function setMessage(string memory newMessage)public{
 message=newMessage;

 }

 function getMessage()public view returns(string memory){
 return message;
 }
}
2
Kartik ganiga

Sélectionnez une version différente du compilateur Solidity. ^0.4.25 fonctionne pour moi.

La version du compilateur Solidity doit être définie à la fois sur le fichier et dans l'onglet de compilation sur remix (il s'agit d'un menu déroulant).

0
nikos fotiadis