打字猴:1.703876603e+09
1703876603 区块链项目开发指南 [:1703875303]
1703876604 区块链项目开发指南 3.4.7 基本类型之间的转换
1703876605
1703876606 除了数组类型、字符串类型、结构类型、枚举类型和map类型外,其他类型均称为基本类型。
1703876607
1703876608 如果把一个操作符应用于不同的类型,编译器将尝试把一个操作数隐式转换为另一种类型。通常来说,如果没有语义信息丢失,值和类型之间可以进行隐式转换:uint8可转换为uint16,int128可转换为int256,但是int8不可转换为uint256(因为uint256不能存储,例如-1)。此外,无符号整数可以转换成同等大小或者更大的字节,但是反之则不然。任何可以转换成uint160的类型都可以转换成地址。
1703876609
1703876610 Solidity也支持显式转换。所以,如果编译器不允许在两种数据类型之间隐式转换,则可以进行显式转换。建议尽量避免显式转换,因为可能返回难以预料的结果。
1703876611
1703876612 来看一个例子:
1703876613
1703876614
1703876615
1703876616
1703876617 这里是将uint32类型显式转换为uint16,也就是说,把较大类型转换为较小类型,因此高位被砍掉了。
1703876618
1703876619
1703876620
1703876621
1703876622 区块链项目开发指南 [:1703875304]
1703876623 区块链项目开发指南 3.4.8 使用var
1703876624
1703876625 Solidity提供了用于声明变量的var关键字。变量类型根据分配给它的第一个值来动态确定。一旦分配了值,类型就固定了,所以如果给它指定另一个类型,将引起类型转换。示例如下:
1703876626
1703876627
1703876628
1703876629
1703876630
1703876631 记住:在定义数组array和map时不能使用var。var也不能用于定义函数参数和状态变量。
1703876632
1703876633
1703876634
1703876635
1703876636 区块链项目开发指南 [:1703875305]
1703876637 区块链项目开发指南 3.5 控制结构
1703876638
1703876639 Solidity支持if、else、while、for、break、continue、return、?:等控制结构。
1703876640
1703876641 下面给出了控制结构的一个示例:
1703876642
1703876643
1703876644
1703876645
1703876646
1703876647
1703876648
1703876649 区块链项目开发指南 [:1703875306]
1703876650 区块链项目开发指南 3.6 用new操作符创建合约
1703876651
1703876652 一个合约可以使用new关键字来创建一个新合约,但前提是必须知道新创建的合约的完整代码。示例如下:
[ 上一页 ]  [ :1.703876603e+09 ]  [ 下一页 ]