跳到主要内容

字典操作原语

大部分字典操作的Gas消耗不是固定的,它依赖于给定字典的内容。

操作码Fift 语法堆栈Gas描述
Please enter a search query
No results found

TVM 指令内容列表

字典操作原语

字典创建

xxxxxxx
操作码
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Fift 语法
xxxxxxxxxxxxxxxxx
堆栈
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
描述
xxxx
Gas
6DNEWDICT - D返回一个新的空字典。
它是 PUSHNULL 的另一种助记符。
18
6EDICTEMPTYD - ?检查字典 D 是否为空,并相应地返回 -10
它是 ISNULL 的另一种助记符。
18

字典序列化与反序列化

xxxxxxx
操作码
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Fift 语法
xxxxxxxxxxxxxxxxx
堆栈
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
描述
xxxx
Gas
CESTDICTS
``
s b - b'将以切片表示的字典 s 存储进构建器 b中。
实际上,这是 STSLICE 的同义词。
18
F400STDICT
STOPTREF
D b - b'将字典 D 存入构建器 b,返回结果 构建器 b'
换言之,如果 D 是一个cell,执行 STONESTREF;如果 DNull,执行 NIPSTZERO;否则抛出类型检查异常。
26
F401SKIPDICT
SKIPOPTREF
s - s'相当于 LDDICT NIP26
F402LDDICTSs - s' s''切片 s中加载(解析)以切片表示的字典 s',并将 s的剩余部分作为 s'' 返回。
这是所有 HashmapE(n,X) 类型字典的“分裂函数”。
26
F403PLDDICTSs - s'切片 s中预加载以切片表示的字典 s'
大致相当于 LDDICTS DROP
26
F404LDDICT
LDOPTREF
s - D s'切片 s中加载(解析)字典 D,并将 s的剩余部分作为 s' 返回。可应用于字典或任意 (^Y)? 类型的值。26
F405PLDDICT
PLDOPTREF
s - D切片 s中预加载字典 D
大致相当于 LDDICT DROP
26
F406LDDICTQs - D s' -1或 s 0LDDICT 的静默版本。26
F407PLDDICTQs - D -1或0PLDDICT 的静默版本。26

获取字典操作

xxxxxxx
操作码
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Fift 语法
xxxxxxxxxxxxxxxxx
堆栈
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
描述
xxxx
Gas
F40ADICTGETk D n - x -1或0在类型为 HashmapE(n,X) 且拥有 n-位键的字典 D 中查找键 k(由切片表示,其前 0 <= n <= 1023 数据位被用作键)。
成功时,以切片 x 的形式返回找到的值。
F40BDICTGETREFk D n - c -1或0DICTGET 类似,但在成功时对 x 应用 LDREF ENDS
此操作对于类型为 HashmapE(n,^Y) 的字典很有用。
F40CDICTIGETi D n - x -1或0DICTGET 类似,但使用带符号的(大端)n-位 整型 i 作为键。如果 i 不能放入 n 位,则返回 0。如果 iNaN,抛出整数溢出异常。
F40DDICTIGETREFi D n - c -1或0组合 DICTIGETDICTGETREF:它使用带符号的 n-位 整型 i 作为键,并在成功时返回 cell 而不是切片
F40EDICTUGETi D n - x -1或0DICTIGET 类似,但使用无符号的(大端)n-位 整型 i 作为键。
F40FDICTUGETREFi D n - c -1或0DICTIGETREF 类似,但使用一个无符号 n-位 整型i

设置/替换/添加字典操作

xxxxxxx
操作码
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Fift 语法
xxxxxxxxxxxxxxxxx
堆栈
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
描述
xxxx
Gas
F412DICTSETx k D n - D'在字典 D(同样用切片表示)中设置 n-位键 k(如 DICTGET 中用切片表示)关联的值为 x(再次是切片),并返回结果字典 D'
F413DICTSETREFc k D n - D'类似于 DICTSET,但设置的值为对cell c 的引用。
F414DICTISETx i D n - D'类似于 DICTSET,但键由(大端)有符号 n-位整数 i 表示。如果 i 不能放入 n 位,则生成范围检查异常。
F415DICTISETREFc i D n - D'类似于 DICTSETREF,但键由 DICTISET 中的有符号 n-位整数表示。
F416DICTUSETx i D n - D'类似于 DICTISET,但 i无符号 n-位整数。
F417DICTUSETREFc i D n - D'类似于 DICTISETREF,但 i 为无符号。
F41ADICTSETGETx k D n - D' y -1或 D' 0结合 DICTSETDICTGET:它将键 k 对应的值设置为 x,但也返回该键原有的旧值 y(如果存在)。
F41BDICTSETGETREFc k D n - D' c' -1或 D' 0类似于 DICTSETGETDICTSETREFDICTGETREF 的组合。
F41CDICTISETGETx i D n - D' y -1或 D' 0DICTISETGET,但 i 为有符号 n-位整数。
F41DDICTISETGETREFc i D n - D' c' -1或 D' 0DICTISETGETREF,但 i 为有符号 n-位整数。
F41EDICTUSETGETx i D n - D' y -1或 D' 0DICTISETGET,但 i 为无符号 n-位整数。
F41FDICTUSETGETREFc i D n - D' c' -1或 D' 0DICTISETGETREF,但 i 为无符号 n-位整数。
F422DICTREPLACEx k D n - D' -1或 D 0一个 替换 操作,类似于 DICTSET,但只有当键 k 已经存在于 D 中时才会将 D 中键 k 的值设置为 x
F423DICTREPLACEREFc k D n - D' -1或 D 0DICTSETREF替换 对应操作。
F424DICTIREPLACEx i D n - D' -1或 D 0DICTREPLACE,但 i 为有符号 n-位整数。
F425DICTIREPLACEREFc i D n - D' -1或 D 0DICTREPLACEREF,但 i 为有符号 n-位整数。
F426DICTUREPLACEx i D n - D' -1或 D 0DICTREPLACE,但 i 为无符号 n-位整数。
F427DICTUREPLACEREFc i D n - D' -1或 D 0DICTREPLACEREF,但 i 为无符号 n-位整数。
F42ADICTREPLACEGETx k D n - D' y -1或 D 0DICTSETGET替换 对应操作:成功时,还会返回与该键相关的旧值。
F42BDICTREPLACEGETREFc k D n - D' c' -1或 D 0DICTSETGETREF替换 对应操作。
F42CDICTIREPLACEGETx i D n - D' y -1或 D 0DICTREPLACEGET,但 i 为有符号 n-位整数。
F42DDICTIREPLACEGETREFc i D n - D' c' -1或 D 0DICTREPLACEGETREF,但 i 为有符号 n-位整数。
F42EDICTUREPLACEGETx i D n - D' y -1或 D 0DICTREPLACEGET,但 i 为无符号 n-位整数。
F42FDICTUREPLACEGETREFc i D n - D' c' -1或 D 0DICTREPLACEGETREF,但 i 为无符号 n-位整数。
F432DICTADDx k D n - D' -1或 D 0DICTSET添加 对应操作:在字典 D 中将与键 k 关联的值设置为 x,但只有当它还未在 D 中存在时。
F433DICTADDREFc k D n - D' -1或 D 0DICTSETREF添加 对应操作。
F434DICTIADDx i D n - D' -1或 D 0DICTADD,但 i 为有符号 n-位整数。
F435DICTIADDREFc i D n - D' -1或 D 0DICTADDREF,但 i 为有符号 n-位整数。
F436DICTUADDx i D n - D' -1或 D 0DICTADD,但 i 为无符号 n-位整数。
F437DICTUADDREFc i D n - D' -1或 D 0DICTADDREF,但 i 为无符号 n-位整数。
F43ADICTADDGETx k D n - D' -1或 D y 0DICTSETGET添加 对应操作:在字典 D 中将与键 k 关联的值设置为 x,但只有当键 k 还未在 D 中存在时。否则,仅返回旧值 y,不更改字典。
F43BDICTADDGETREFc k D n - D' -1或 D c' 0DICTSETGETREF添加 对应操作。
F43CDICTIADDGETx i D n - D' -1或 D y 0DICTADDGET,但 i 为有符号 n-位整数。
F43DDICTIADDGETREFc i D n - D' -1或 D c' 0DICTADDGETREF,但 i 为有符号 n-位整数。
F43EDICTUADDGETx i D n - D' -1或 D y 0DICTADDGET,但 i 为无符号 n-位整数。
F43FDICTUADDGETREFc i D n - D' -1或 D c' 0DICTADDGETREF,但 i 为无符号 n-位整数。

接受构建器的字典设置操作变体

以下操作接受新值作为构建器 b,而不是切片 x。 | xxxxxxx
操作码 | xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Fift 语法 | xxxxxxxxxxxxxxxxx
堆栈 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
描述 | xxxx
Gas | |:-|:-|:-|:-|:-| | F441 | DICTSETB | b k D n - D' | | | | F442 | DICTISETB | b i D n - D' | | | | F443 | DICTUSETB | b i D n - D' | | | | F445 | DICTSETGETB | b k D n - D' y -1或 D' 0 | | | | F446 | DICTISETGETB | b i D n - D' y -1或 D' 0 | | | | F447 | DICTUSETGETB | b i D n - D' y -1或 D' 0 | | | | F449 | DICTREPLACEB | b k D n - D' -1或 D 0 | | | | F44A | DICTIREPLACEB | b i D n - D' -1或 D 0 | | | | F44B | DICTUREPLACEB | b i D n - D' -1或 D 0 | | | | F44D | DICTREPLACEGETB | b k D n - D' y -1或 D 0 | | | | F44E | DICTIREPLACEGETB | b i D n - D' y -1或 D 0 | | | | F44F | DICTUREPLACEGETB | b i D n - D' y -1或 D 0 | | | | F451 | DICTADDB | b k D n - D' -1或 D 0 | | | | F452 | DICTIADDB | b i D n - D' -1或 D 0 | | | | F453 | DICTUADDB | b i D n - D' -1或 D 0 | | | | F455 | DICTADDGETB | b k D n - D' -1或 D y 0 | | | | F456 | DICTIADDGETB | b i D n - D' -1或 D y 0 | | | | F457 | DICTUADDGETB | b i D n - D' -1或 D y 0 | | |

删除字典操作

xxxxxxx
操作码
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Fift 语法
xxxxxxxxxxxxxxxxx
堆栈
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
描述
xxxx
Gas
F459DICTDELk D n - D' -1或 D 0从字典 D 中删除由切片 k 表示的 n-位键。如果键存在,返回修改后的字典 D' 和成功标志位 -1。否则,返回原始字典 D0
F45ADICTIDELi D n - D' ?DICTDEL 的一个版本,键由有符号的 n-位 整数 i 表示。如果 i 不能放入 n 位,简单地返回 D 0(“键未找到,字典未修改”)。
F45BDICTUDELi D n - D' ?类似于 DICTIDEL,但 i 为无符号的 n-位整数。
F462DICTDELGETk D n - D' x -1或 D 0从字典 D 中删除由切片 k 表示的 n-位键。如果键存在,返回修改后的字典 D'、与键 k 关联的原始值 x(由切片表示),和成功标志位 -1。否则,返回原始字典 D0
F463DICTDELGETREFk D n - D' c -1或 D 0类似于 DICTDELGET,但成功时对 x 应用 LDREF ENDS,以便返回的值 c 是一个cell
F464DICTIDELGETi D n - D' x -1或 D 0DICTDELGET,但 i 为有符号的 n-位整数。
F465DICTIDELGETREFi D n - D' c -1或 D 0DICTDELGETREF,但 i 为有符号的 n-位整数。
F466DICTUDELGETi D n - D' x -1或 D 0DICTDELGET,但 i 为无符号的 n-位整数。
F467DICTUDELGETREFi D n - D' c -1或 D 0DICTDELGETREF,但 i 为无符号的 n-位整数。

“可能是引用”的字典操作

以下操作假设使用字典存储类型为可能是cell(Maybe Cell)的值 c?。表示如下:如果 c? 是一个cell,它作为一个没有数据位且恰好有一个对这个cell的引用的值存储。如果 c?Null,则对应的键必须从字典中缺失。 | xxxxxxx
操作码 | xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Fift 语法 | xxxxxxxxxxxxxxxxx
堆栈 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
描述 | xxxx
Gas | |:-|:-|:-|:-|:-| | F469 | DICTGETOPTREF | k D n - c^? | DICTGETREF 的一个变体,如果键 k 不存在于字典 D 中,则返回 Null 而不是值 c^?。 | | | F46A | DICTIGETOPTREF | i D n - c^? | DICTGETOPTREF 的版本,但 i 为有符号的 n-位整数。如果键 i 超出范围,也返回 Null。 | | | F46B | DICTUGETOPTREF | i D n - c^? | DICTGETOPTREF 的版本,但 i 为无符号的 n-位整数。如果键 i 超出范围,也返回 Null。 | | | F46D | DICTSETGETOPTREF | c^? k D n - D' ~c^? | DICTGETOPTREFDICTSETGETREF 的一个变体,将字典 D 中键 k 对应的值设置为 c^?(如果 c^?Null,则删除该键),并返回旧值 ~c^?(如果键 k 之前缺失,返回Null)。 | | | F46E | DICTISETGETOPTREF | c^? i D n - D' ~c^? | 类似于 DICTSETGETOPTREF 的原语,但使用有符号的 n-位 整数 i 作为键。如果 i 不能放入 n 位,抛出范围检查异常。 | | | F46F | DICTUSETGETOPTREF | c^? i D n - D' ~c^? | 类似于 DICTSETGETOPTREF 的原语,但使用无符号的 n-位 整数 i 作为键。 | |

前缀码字典操作

构建前缀码字典的一些基本操作。 这些原语与它们非前缀码(DICTSET 等)的对应操作完全相同,不过在前缀码字典中,即使是 Set 也可能失败,因此 PFXDICTSET 也必须返回成功标志位。 | xxxxxxx
操作码 | xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Fift 语法 | xxxxxxxxxxxxxxxxx
堆栈 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
描述 | xxxx
Gas | |:-|:-|:-|:-|:-| | F470 | PFXDICTSET | x k D n - D' -1或 D 0 | | | | F471 | PFXDICTREPLACE | x k D n - D' -1或 D 0 | | | | F472 | PFXDICTADD | x k D n - D' -1或 D 0 | | | | F473 | PFXDICTDEL | k D n - D' -1或 D 0 | | |

GetNext 和 GetPrev 操作的变体

xxxxxxx
操作码
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Fift 语法
xxxxxxxxxxxxxxxxx
堆栈
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
描述
xxxx
Gas
F474DICTGETNEXTk D n - x' k' -1或 0计算字典 D 中字典序大于 k 的最小键 k',并返回 k'(由切片表示)及其关联的值 x'(也由切片表示)。
F475DICTGETNEXTEQk D n - x' k' -1或 0类似于 DICTGETNEXT,但计算字典序大于或等于 k 的最小键 k'
F476DICTGETPREVk D n - x' k' -1或 0类似于 DICTGETNEXT,但计算字典序小于 k 的最大键 k'
F477DICTGETPREVEQk D n - x' k' -1或 0类似于 DICTGETPREV,但计算字典序小于或等于 k 的最大键 k'
F478DICTIGETNEXTi D n - x' i' -1或 0类似于 DICTGETNEXT,但将字典 D 中的所有键解释为大端有符号的 n-位整数,并计算大于整数 i 的最小键 i'i 不一定能放入 n 位)。
F479DICTIGETNEXTEQi D n - x' i' -1或 0类似于 DICTGETNEXTEQ,但将键解释为有符号的 n-位整数。
F47ADICTIGETPREVi D n - x' i' -1或 0类似于 DICTGETPREV,但将键解释为有符号的 n-位整数。
F47BDICTIGETPREVEQi D n - x' i' -1或 0类似于 DICTGETPREVEQ,但将键解释为有符号的 n-位整数。
F47CDICTUGETNEXTi D n - x' i' -1或 0类似于 DICTGETNEXT,但将字典 D 中的所有键解释为大端无符号的 n-位整数,并计算大于整数 i 的最小键 i'i 不一定能放入 n 位,也不一定是非负的)。
F47DDICTUGETNEXTEQi D n - x' i' -1或 0类似于 DICTGETNEXTEQ,但将键解释为无符号的 n-位整数。
F47EDICTUGETPREVi D n - x' i' -1或 0类似于 DICTGETPREV,但将键解释为无符号的 n-位整数。
F47FDICTUGETPREVEQi D n - x' i' -1或 0类似于 DICTGETPREVEQ,但将键解释为无符号的 n-位整数。

GetMin, GetMax, RemoveMin, RemoveMax 操作

xxxxxxx
操作码
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Fift 语法
xxxxxxxxxxxxxxxxx
堆栈
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
描述
xxxx
Gas
F482DICTMIND n - x k -1或 0计算字典 D 中的最小键 k(由拥有 n 数据位的切片表示),并返回 k 及其关联的值 x
F483DICTMINREFD n - c k -1或 0类似于 DICTMIN,但返回值中唯一的引用作为cell c
F484DICTIMIND n - x i -1或 0类似于 DICTMIN,但在假设所有键为大端有符号的 n-位整数的情况下计算最小键 i。注意,返回的键和值可能与 DICTMINDICTUMIN 计算出的不同。
F485DICTIMINREFD n - c i -1或 0类似于 DICTIMIN,但返回值中唯一的引用。
F486DICTUMIND n - x i -1或 0类似于 DICTMIN,但以无符号 n-位 整数 i 的形式返回键。
F487DICTUMINREFD n - c i -1或 0类似于 DICTUMIN,但返回值中唯一的引用。
F48ADICTMAXD n - x k -1或 0计算字典 D 中的最大键 k(由拥有 n 数据位的切片表示),并返回 k 及其关联的值 x
F48BDICTMAXREFD n - c k -1或 0类似于 DICTMAX,但返回值中唯一的引用。
F48CDICTIMAXD n - x i -1或 0类似于 DICTMAX,但在假设所有键为大端有符号的 n-位整数的情况下计算最大键 i。注意,返回的键和值可能与 DICTMAXDICTUMAX 计算出的不同。
F48DDICTIMAXREFD n - c i -1或 0类似于 DICTIMAX,但返回值中唯一的引用。
F48EDICTUMAXD n - x i -1或 0类似于 DICTMAX,但以无符号 n-位 整数 i 的形式返回键。
F48FDICTUMAXREFD n - c i -1或 0类似于 DICTUMAX,但返回值中唯一的引用。
F492DICTREMMIND n - D' x k -1或D 0计算字典 D 中的最小键 k(以n数据位的切片形式表示),从字典中移除 k,并返回 k 及其关联的值 x 和修改后的字典 D'
F493DICTREMMINREFD n - D' c k -1或D 0类似于 DICTREMMIN,但返回值中唯一的引用作为cell c
F494DICTIREMMIND n - D' x i -1或D 0类似于 DICTREMMIN,但计算最小键 i,假设所有键都是大端有符号的n-位整数。请注意,返回的键和值可能与DICTREMMINDICTUREMMIN计算的不同。
F495DICTIREMMINREFD n - D' c i -1或D 0类似于 DICTIREMMIN,但返回值中唯一的引用。
F496DICTUREMMIND n - D' x i -1或D 0类似于 DICTREMMIN,但以无符号n-位整数 i 形式返回键。
F497DICTUREMMINREFD n - D' c i -1或D 0类似于 DICTUREMMIN,但返回值中唯一的引用。
F49ADICTREMMAXD n - D' x k -1或D 0计算字典 D 中的最大键 k(以n数据位的切片形式表示),从字典中移除 k,并返回 k 及其关联的值 x 和修改后的字典 D'
F49BDICTREMMAXREFD n - D' c k -1或D 0类似于 DICTREMMAX,但返回值中唯一的引用作为cell c
F49CDICTIREMMAXD n - D' x i -1或D 0类似于 DICTREMMAX,但计算最大键 i,假设所有键都是大端有符号的n-位整数。请注意,返回的键和值可能与DICTREMMAXDICTUREMMAX计算的不同。
F49DDICTIREMMAXREFD n - D' c i -1或D 0类似于 DICTIREMMAX,但返回值中唯一的引用。
F49EDICTUREMMAXD n - D' x i -1或D 0类似于 DICTREMMAX,但以无符号n-位整数 i 形式返回键。
F49FDICTUREMMAXREFD n - D' c i -1或D 0类似于 DICTUREMMAX,但返回值中唯一的引用。

特殊的获取字典和前缀码字典操作以及常量字典

xxxxxxx
操作码
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Fift 语法
xxxxxxxxxxxxxxxxx
堆栈
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
描述
xxxx
Gas
F4A0DICTIGETJMPi D n - 类似于 DICTIGET,但在成功时将 x BLESS 成一个continuation,并随后执行对其的 JMPX。失败时不执行任何操作。这对于实现 switch/case 结构很有用。
F4A1DICTUGETJMPi D n - 类似于 DICTIGETJMP,但执行 DICTUGET 而非 DICTIGET
F4A2DICTIGETEXECi D n - 类似于 DICTIGETJMP,但使用 EXECUTE 而非 JMPX
F4A3DICTUGETEXECi D n - 类似于 DICTUGETJMP,但使用 EXECUTE 而非 JMPX
F4A6_n[ref] [n] DICTPUSHCONST - D n推送非空常量字典 D(作为Cell^?)和其键长 0 <= n <= 1023,存储为指令的一部分。字典本身是从当前continuation的剩余引用中的第一个创建的。通过这种方式,完整的 DICTPUSHCONST 指令可以通过首先序列化 xF4A4_,然后是非空字典本身(一个 1 位和一个cell引用),然后是无符号的 10 位整数 n(仿佛通过 STU 10 指令)获得。空字典可以通过 NEWDICT 原语推送。34
F4A8PFXDICTGETQs D n - s' x s'' -1或s 0在前缀码字典中查找切片 s 的唯一前缀,该字典由 Cell^? D0 <= n <= 1023 表示。如果找到,作为 s' 返回 s 的前缀,并作为切片 x 返回相应的值。s 的剩余部分作为切片 s'' 返回。如果 s 的任何前缀不是前缀码字典 D 中的键,则返回未更改的 s 和零标志位以表示失败。
F4A9PFXDICTGETs D n - s' x s''类似于 PFXDICTGET,但在失败时抛出cell反序列化失败异常。
F4AAPFXDICTGETJMPs D n - s' s''或s类似于 PFXDICTGETQ,但成功时将值 x BLESS 成一个continuation,并像执行 JMPX 一样转移控制权。失败时,返回未改变的 s 并继续执行。
F4ABPFXDICTGETEXECs D n - s' s''类似于 PFXDICTGETJMP,但执行找到的continuation而非跳转它。失败时,抛出cell反序列化异常。
F4AE_n[ref] [n] PFXDICTCONSTGETJMP
[ref] [n] PFXDICTSWITCH
s - s' s''或s[n] DICTPUSHCONSTPFXDICTGETJMP 结合起来,用于 0 <= n <= 1023
F4BCDICTIGETJMPZi D n - i或nothingDICTIGETJMP 的一个变种,在失败时返回索引 i
F4BDDICTUGETJMPZi D n - i或nothingDICTUGETJMP 的一个变种,在失败时返回索引 i
F4BEDICTIGETEXECZi D n - i或nothingDICTIGETEXEC 的一个变种,在失败时返回索引 i
F4BFDICTUGETEXECZi D n - i或nothingDICTUGETEXEC 的一个变种,在失败时返回索引 i

SubDict 字典操作

xxxxxxx
操作码
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Fift 语法
xxxxxxxxxxxxxxxxx
堆栈
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
描述
xxxx
Gas
F4B1SUBDICTGETk l D n - D'构建一个由所有以前缀 k(由一个切片表示,其前 0 <= l <= n <= 1023 个数据位用作键)为前缀的字典 D 中的键组成的子字典。这里的 D 是类型为 HashmapE(n,X) 的字典,拥有 n 位的键。成功时,返回同类型 HashmapE(n,X) 的新子字典作为一个切片 D'
F4B2SUBDICTIGETx l D n - D'SUBDICTGET 的变体,前缀由有符号的大端 l-位整数 x 表示,必须满足 l <= 257
F4B3SUBDICTUGETx l D n - D'SUBDICTGET 的变体,前缀由无符号的大端 l-位整数 x 表示,必须满足 l <= 256
F4B5SUBDICTRPGETk l D n - D'类似于 SUBDICTGET,但从新字典 D' 的所有键中移除公共前缀 k,它变为 HashmapE(n-l,X) 类型。
F4B6SUBDICTIRPGETx l D n - D'SUBDICTRPGET 的变体,前缀由有符号的大端 l-位整数 x 表示,必须满足 l <= 257
F4B7SUBDICTURPGETx l D n - D'SUBDICTRPGET 的变体,前缀由无符号的大端 l-位整数 x 表示,必须满足 l <= 256

TVM 指令内容列表