本系列文檔翻譯版權歸FireStack團隊所有,轉載請注明來源睬罗。
整型(Integer Types)
Scilla定義了32位,64位和128位的有符號和無符號整數(shù)類型旭斥。計劃在未來支持256位整數(shù)容达。可以使用關鍵字指定這些整數(shù)類型IntX
垂券,UintX
其中 X
可以是32,64或128.例如花盐,可以將128位的無符號整數(shù)指定為Uint128
。
注意:與貨幣相關的價值(如轉賬金額或賬戶余額)是
Uint128
菇爪。
以下是整數(shù)類型的內置用法算芯,每個方法采用兩個整數(shù)IntX
/ UintX
(參數(shù)需為相同類型)作為參數(shù)。
-
eq s1 s2
:判斷i1
是否等于i2
凳宙,返回Bool
熙揍。 -
add s1 s2
:i1與i2
之和。返回同一類型的整數(shù)近速。 -
sub i1 i2
:i1
與`i2之差诈嘿。返回同一類型的整數(shù)。 -
mul i1 i2
:i1
與i2
之積削葱。返回同一類型的整數(shù)奖亚。 -
lt i1 i2
:判斷i1
是否比i2
小。返回Bool
析砸。
字符串(Strings)
與大多數(shù)語言一樣昔字,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個字節(jié))编检。 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
,返回關聯(lián)值v
(值為Option類型驹吮,可查閱后文介紹)针史。如果k
不在映射m
中晶伦,則返回值為None
。 -
remove m k
:從映射m
中刪除鍵k
及其關聯(lián)值啄枕。返回一個更新后的映射婚陪。 -
contains m k
:鍵k
及其關聯(lián)值是否存在于映射m
中。返回Bool
频祝。
地址(Addresses)
Address
數(shù)據(jù)類型可用來表示“地址”近忙,必須都用Address
聲明。Address
皆以0x
為開頭智润,長度為40個十六進制字符(相當于20個字節(jié))及舍。
以下Address
操作是內置用法:
-
eq a1 a2
:Address a1
是否等于Adress a2
。返回Bool
窟绷。
塊號(Block Numbers)
塊號是Scilla中的一種專用數(shù)據(jù)類型锯玛。此變量類型用BNum
來聲明,BNum
是指以block
為前綴的數(shù)字(例如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
辐棒。