pragma solidity ^0.4.0;
contract contracta{
uint mapsize=10;
struct request_task{
uint task_id;
string ip_address;
uint flag ;// submited, 1, excuteding, 2, finished, 3, failed
uint task_submit_time; // 08:12:01 06/18/2018
uint task_deadline; // 09:12:01 06/18/2018
uint provided_price; // maximum price: $10 per hour
uint bandwidth; // minimum: 100.00 KBP
}
request_task[] private request;
uint internal countera;
function contracta() internal{
add(1,"172.168.3.3",1,10,30,5,200);
add(1,"172.168.3.3",1,10,30,5,200);
}
function add(uint _task_id,string _ip_address,uint _flag,uint _task_submit_time,uint _task_deadline,uint _provided_price,uint _bandwidth) internal{
request.push(request_task(_task_id,_ip_address,_flag, _task_submit_time,_task_deadline,_provided_price,_bandwidth));
}
function get()constant returns(uint){
return request[1].task_submit_time;
}
}
Sie können keinen Vertrag mit einem internal
Konstruktor bereitstellen. Verwenden Sie public
stattdessen:
function contracta() public {
add(1,"172.168.3.3",1,10,30,5,200);
add(1,"172.168.3.3",1,10,30,5,200);
}
Übrigens verwenden Sie eine extrem alte Version des Solidity-Compilers. Die aktuelle Version ist 0.4.23. Heutzutage gibt es eine verbesserte Konstruktorsyntax:
constructor() public {
...
}
gute Stimmung
internal
, Sie können den Vertrag nur nicht bereitstellen (oder erstellen). Der Sinn eines Konstruktors bestehtinternal
darin, dass Sie ausdrücklich angeben möchten, dass Sie den Vertrag nicht bereitstellen (oder erstellen) möchten, aber dennoch von ihm erben möchten (dh ihn zu einem bereitstellbaren Vertrag erweitern).