本系列文档翻译版权归FireStack团队所有,转载请注明来源。
整型(Integer Types)
Scilla定义了32位,64位和128位的有符号和无符号整数类型。计划在未来支持256位整数。可以使用关键字指定这些整数类型IntX,UintX其中 X可以是32,64或128.例如,可以将128位的无符号整数指定为Uint128。
注意:与货币相关的价值(如转账金额或账户余额)是
Uint128。
以下是整数类型的内置用法,每个方法采用两个整数IntX/ UintX(参数需为相同类型)作为参数。
-
eq s1 s2:判断i1是否等于i2,返回Bool。 -
add s1 s2:i1与i2之和。返回同一类型的整数。 -
sub i1 i2:i1与`i2之差。返回同一类型的整数。 -
mul i1 i2:i1与i2之积。返回同一类型的整数。 -
lt i1 i2:判断i1是否比i2小。返回Bool。
字符串(Strings)
与大多数语言一样,Scilla中的String用双引号括起来的字符表示。使用String来声明变量类型。
以下是String的内置用法:
-
eq s1 s2:String s1是否等于String s2。返回Bool。 -
concat s1 s2:将String s1与String s2合并。返回String。 -
substr s1 i1 i2:在字符串s1中,自位置Uint32 i1开始,提取长度为Uint32 i2的字符串。返回String。
哈希值(Hashes)
Scilla内置了对Hash的支持。Hash文字以0x字母开头并具有64个十六进制字符(32个字节)。 Hash指定此类型的变量。
以下Hash操作是内置用法。在下面的描述中,Any可以是IntX,UintX,String,Address或Hash等类型。
-
eq h1 h2:Hash h1是否等于Hash h2。返回Bool。 -
dist h1 h2:Hash h1和Hash h2之间的距离。返回Uint128。未来会支持Uint256,可直接返回Uint256。 -
sha256 x:值为x的SHA256哈希值。返回Hash。
映射(Maps)
Map即为映射类型值。“键”含IntX, UintX,String,Hash或Address等类型。“值”可以是任何类型。
-
put m k v:在映射m中插入键k和值v。除了之前的键/值对外,还返回包含最新插入的键/值的新映射。 -
get m k:在映射m中,对于密钥k,返回关联值v(值为Option类型,可查阅后文介绍)。如果k不在映射m中,则返回值为None。 -
remove m k:从映射m中删除键k及其关联值。返回一个更新后的映射。 -
contains m k:键k及其关联值是否存在于映射m中。返回Bool。
地址(Addresses)
Address数据类型可用来表示“地址”,必须都用Address声明。Address皆以0x为开头,长度为40个十六进制字符(相当于20个字节)。
以下Address操作是内置用法:
-
eq a1 a2:Address a1是否等于Adress a2。返回Bool。
块号(Block Numbers)
块号是Scilla中的一种专用数据类型。此变量类型用BNum来声明,BNum是指以block为前缀的数字(例如block 101)。
以下BNum操作是内置用法:
-
eq b1 b2:BNum b1是否等于BNum b2。返回Bool。 -
blt b1 b2:BNum b1是否小于BNum b2。返回Bool。 -
badd b1 i1:将UintX i1添加到BNum b1。返回BNum。






网友评论