无法使用 uint8 类型初始化数组

问题描述

我尝试使用以下表达式初始化数组:

const a: array[3,uint8] = [1,2,3]
echo repr(a)

编译器输出

Error: type mismatch: got <array[0..2,int]> but expected 'array[0..2,uint8]'

有没有传统的方法来做到这一点?

解决方法

您正在使用 int[] 表达式初始化 uint8[]。为了正确初始化它,您需要使用兼容的文字。

例如:

const a: array[3,uint8] = [1'u8,2,3]

通过使用 'u8 后缀将数组表达式的初始元素标记为 uint8,您可以使整个数组表达式成为 uint8[]。