解码器
Decoder<
TTo
> =FixedSizeDecoder
<TTo
> |VariableSizeDecoder
<TTo
>
一个可以将字节数组解码为 TTo 类型值的对象。
Decoder
可以是:
- 一个 FixedSizeDecoder,其中所有字节数组都具有相同的固定大小。
- 一个 VariableSizeDecoder,其中字节数组的大小可以变化。
类型参数
类型参数 | 描述 |
---|---|
TTo | 解码值的类型。 |
示例
从字节数组中获取解码后的值。
从特定偏移量的字节数组中读取解码后的值, 并获取下一个要读取的字节的偏移量。
备注
你可以使用 createDecoder 函数手动创建 Decoders
,但更常见的是
使用 @solana/codecs
包的各种助手函数将多个 Decoders
组合在一起。
例如,以下是如何为一个包含 name
字符串和 age
数字的 Person
对象类型创建一个 Decoder
:
请注意,组合的 Decoder
类型足够聪明,可以理解它们是固定大小还是可变大小。 在上面的例子中,getU32Decoder()
是一个
固定大小的解码器,而 addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())
是一个可变大小的解码器。 这使得最终的 Person
解码器成为一个可变大小的解码器。