solidity数据类型

1.Bool类型

取值:true/false

  运算符:!  && || == !=

 

2.Integer整型

uint8-uint256

int8-int256

  uint == uint256

  int == int256

运算符:<   <=   ==

    位运算:& |  ^(异或)  ~(位取反)

    算数运算:+,-,* ,/,%,**,<<,>>

   constant 关键字的函数不会修改状态变量的值

 

使用var,var a = 100; 【a为uint8,因为uint8足够存储100】 将第一次复制的类型作为a的类型。

  function testUint() constant returns(uint8){
      var a=100;
      return a;
  }

  因此,对于下面的代码是错误的:i初始化时为uint8

  function add() constant returns(uint){
    uint a=0;
    for(var i=0;i<=256;i++){
      a+=1;
    }
    return a;
  }

 

 

3. address地址类型【钱包地址】

  地址长度为20字节,即160bit,40位16进制数。因此可以使用uint160

pragma solidity ^0.4.4;

contract AddrTest{
  address _owner;
  function setOwner(){
    _owner = 0x4def79be8ccf285bbd6d59c6e3f6f6680d150d1d;
  }

  function getOwner()constant returns(address){
    return _owner;
  }

  function getOwner()constant returns(uint160){
    return uint160(_owner);   //uint160: 444932772883299463689308144911204261155420048669
  }


}

 

  address和uint160可以相互转化;

msg.sender:钱包地址

msg.sender是可以变的,他是Account地址

 

  

 

posted @ 2018-08-13 09:22  fight139  阅读(628)  评论(0编辑  收藏  举报