2016-06-16 12 views
9
struct buyer{ 
     uint amount; 
     Status status; 
    } 

    mapping(address=>buyer) public buyers; 
    mapping(uint=>address) buyerIndex; 
    uint public buyerNum; 
    //Order a product. 
    function(){ 
     uint doubleValue=value*2; 
     uint amount=msg.value/doubleValue; 
     if(buyers[msg.sender]==null){ //Error in this line 
     buyer abuyer=buyer({amount:amount,status:Status.Created}); //Error in this line 
     buyerNum++; 
     buyerIndex[buyerNum]=msg.sender; 
     buyers[msg.sender]=abuyer; 
    }else{ 
     buyers[msg.sender].amount+=amount; 
    } 
     Order(msg.sender,amount*doubleValue,amount); 

} 

Nếu người mua không được ghi lại bản đồ người mua, thì người muaNum ++; nhưng tôi không biết cách người mua đang ở trong bản đồCó điều gì giống như không trong sự vững chắc

+0

Có lẽ như [Làm thế nào tôi có thể kiểm tra nếu một biến hoặc một mảng được thiết lập hoặc rỗng hoặc null] (http://ethereum.stackexchange.com/a/2134/87), [Kiểm tra giá trị 0 của cấu trúc] (http://ethereum.stackexchange.com/q/2502/87) hoặc [Giá trị bằng không cho một chuỗi] (http: // ethereum là gì. stackexchange.com/q/5683/87) tại Ethereum Stack Exchange? – default

Trả lời

3

Bạn có thể tạo None biến để sử dụng nó như một NULL:

uint80 constant None = uint80(0); 
2

Trong đoàn kết tất cả các biến được đặt 0 theo mặc định.

Bạn nên nghĩ đến mappingsvì tất cả có thể kết hợp được đặt thành 0 theo mặc định.

Trong trường hợp cụ thể của bạn tôi sẽ sử dụng như sau:

if (buyers[msg.sender].amount == 0) 
Các vấn đề liên quan