Zilliqa官方文档(五)- 原生数据类型和操作

本系列文档翻译版权归FireStack团队所有,转载请注明来源。

整型(Integer Types)

Scilla定义了32位,64位和128位的有符号和无符号整数类型。计划在未来支持256位整数。可以使用关键字指定这些整数类型IntXUintX其中 X可以是32,64或128.例如,可以将128位的无符号整数指定为Uint128

注意:与货币相关的价值(如转账金额或账户余额)是Uint128

以下是整数类型的内置用法,每个方法采用两个整数IntX/ UintX(参数需为相同类型)作为参数。

  • eq s1 s2:判断i1是否等于i2,返回Bool
  • add s1 s2i1与i2之和。返回同一类型的整数。
  • sub i1 i2i1与`i2之差。返回同一类型的整数。
  • mul i1 i2i1i2之积。返回同一类型的整数。
  • lt i1 i2:判断i1是否比i2小。返回Bool

字符串(Strings)

与大多数语言一样,Scilla中的String用双引号括起来的字符表示。使用String来声明变量类型。

以下是String的内置用法:

  • eq s1 s2String s1是否等于String s2。返回Bool
  • concat s1 s2:将String s1String s2合并。返回String
  • substr s1 i1 i2:在字符串s1中,自位置Uint32 i1开始,提取长度为Uint32 i2的字符串。返回String

哈希值(Hashes)

Scilla内置了对Hash的支持。Hash文字以0x字母开头并具有64个十六进制字符(32个字节)。 Hash指定此类型的变量。

以下Hash操作是内置用法。在下面的描述中,Any可以是IntXUintXStringAddressHash等类型。

  • eq h1 h2Hash h1是否等于Hash h2。返回Bool
  • dist h1 h2Hash h1Hash h2之间的距离。返回Uint128。未来会支持Uint256,可直接返回Uint256
  • sha256 x:值为x的SHA256哈希值。返回Hash

映射(Maps)

Map即为映射类型值。“键”含IntXUintXStringHashAddress等类型。“值”可以是任何类型。

  • 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 a2Address a1是否等于Adress a2。返回Bool

块号(Block Numbers)

块号是Scilla中的一种专用数据类型。此变量类型用BNum来声明,BNum是指以block为前缀的数字(例如block 101)。

以下BNum操作是内置用法:

  • eq b1 b2BNum b1是否等于BNum b2。返回Bool
  • blt b1 b2BNum b1是否小于BNum b2。返回Bool
  • badd b1 i1:将UintX i1添加到BNum b1。返回BNum

你可能感兴趣的:(Zilliqa官方文档(五)- 原生数据类型和操作)