本系列文檔翻譯版權歸FireStack團隊所有,轉載請注明來源。
整型(Integer Types)
Scilla定義了32位,64位和128位的有符號和無符號整數(shù)類型。計劃在未來支持256位整數(shù)??梢允褂藐P鍵字指定這些整數(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。