打字猴:1.703876564e+09
1703876564 区块链项目开发指南 [:1703875301]
1703876565 区块链项目开发指南 3.4.5 mapping类型
1703876566
1703876567 mapping数据类型是一个哈希表。mapping类型只可以存在于storage中,不存在于memory中,因此它们是作为状态变量声明的。可以认为mapping类型包含key/value对,不是实际存储key,而是存储key的keccak256哈希,用于查询value。mapping类型没有长度。mapping不可以被分配给另一个mapping。
1703876568
1703876569 下面给出了一个创建和使用mapping的示例:
1703876570
1703876571
1703876572
1703876573
1703876574
1703876575
1703876576
1703876577
1703876578 记住:如果想访问mapping中不存在的key,返回的value均为0。
1703876579
1703876580
1703876581
1703876582
1703876583 区块链项目开发指南 [:1703875302]
1703876584 区块链项目开发指南 3.4.6 delete操作符
1703876585
1703876586 delete操作符可以用于任何变量,将其设置成默认值。默认值均为0。
1703876587
1703876588 如果对动态数组使用delete操作符,则删除所有元素,其长度变为0。如果对静态数组使用delete操作符,则重置所有索引。还可以通过对特定索引位置使用delete来重置索引。
1703876589
1703876590 如果对map类型使用delete操作符,什么都不会发生。但是如果对map类型的一个键使用delete操作符,则会删除与该键相关的值。
1703876591
1703876592 下面给出了delete操作符的一个示例:
1703876593
1703876594
1703876595
1703876596
1703876597
1703876598
1703876599
1703876600
1703876601
1703876602
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
[ 上一页 ]  [ :1.703876564e+09 ]  [ 下一页 ]