1

我正在为控制 OLED 的 Micro:Bit 编写扩展。我有一个在任何函数之外声明的数组。当我尝试在函数内部使用它时,我在橙色弹出窗口中收到错误“程序错误:取消引用 Null/未定义值”。

据我所知,该程序无法识别任何函数内部的数组名称,并且我能够使用该名称创建一个新数组,就好像它超出了范围一样。直接在初始声明下方(在任何函数之外)运行相同的代码会按预期运行

以下是我可以制作的最简单的版本,但仍然会产生错误:

//% color="#00CC99"
namespace OLED_Test {

    let screenBuffer = [0x00]

    //block
    export function init() {
        let x = screenBuffer[0]
    }
}
4

1 回答 1

0

所以,我仍然不知道为什么它不起作用,但我发现如果我在命名空间中声明变量,然后在 init 函数中设置它,则该变量将适用于其余代码。因此,我只是将所有初始变量赋值都放在我的 init 函数中,例如:

//% color="#00CC99"
namespace OLED_Test {

    let screenBuffer: Array<number>

    //block
    export function init() {
        screenBuffer = [0x00]
    }
    export function foo(){
        let x = screenBuffer[0]
    }
}
于 2019-07-19T02:19:26.327 回答