如何将列表传递给 BASIC-256 中的子例程
How to pass a list to a subroutine in BASIC-256
我很难将列表传递给子例程(尴尬);我收到编译器错误。我遵循了关于数组 (http://doc.basic256.org/doku.php?id=en:arrays) 的 BASIC-256 文档,并根据需要在子例程参数中包含了 []
括号:
subroutine print_list(list) # or subroutine print_list(list[]) <----- **compiler** error occurs here
for element=0 to list[?]-1
print list[element]
next element
end subroutine
subroutine main()
list = {5.9, 6.0, 5.9, 5.7, 5.6, 5.7}
call print_list(list[]) # <----- **compiler** error occurs here
end subroutine
call main()
编译器抱怨我在子程序调用参数部分有错误。
我试过通过以下方法解决这个问题; (i) 检查我的列表初始化; (ii) 检查子程序定义和参数(编译器也不喜欢那里的方括号); (iii) 从参数中排除 []
括号,并且 (iv) 尝试联系 BASIC-256 Facebook 页面。
感谢您的宝贵时间....
传递数据数组时,必须在变量名后包含一组空括号 []。这是为了减少常规变量和包含值数组的变量之间的混淆。
因此,在您的情况下,将您的方法签名从 subroutine print_list(list)
更改为 subroutine print_list(list[])
。
Referring to this link 如果您有任何其他问题。
根据网站上的信息,您不能将数组传递给您自己的子程序,只能传递给内部(内置)子程序。
如果变量本质上是全局的,那没问题,只需对数组执行任何你想要的操作,但如果它们需要是局部的,则不能使用 BASIC 的这种特殊变体来完成。
通读 documentation 后,有一个名为 'ref' 的函数允许您通过引用函数或子例程来传递变量或数组。这样做可以让我打印数组内容。
这是我之前重写的代码以通过引用传递数组:
subroutine print_list(list)
for element=0 to list[?]-1
print list[element]
next element
end subroutine
subroutine main()
list = {5.9, 6.0, 5.9, 5.7, 5.6, 5.7}
call print_list(ref(list))
end subroutine
call main()
我很难将列表传递给子例程(尴尬);我收到编译器错误。我遵循了关于数组 (http://doc.basic256.org/doku.php?id=en:arrays) 的 BASIC-256 文档,并根据需要在子例程参数中包含了 []
括号:
subroutine print_list(list) # or subroutine print_list(list[]) <----- **compiler** error occurs here
for element=0 to list[?]-1
print list[element]
next element
end subroutine
subroutine main()
list = {5.9, 6.0, 5.9, 5.7, 5.6, 5.7}
call print_list(list[]) # <----- **compiler** error occurs here
end subroutine
call main()
编译器抱怨我在子程序调用参数部分有错误。
我试过通过以下方法解决这个问题; (i) 检查我的列表初始化; (ii) 检查子程序定义和参数(编译器也不喜欢那里的方括号); (iii) 从参数中排除 []
括号,并且 (iv) 尝试联系 BASIC-256 Facebook 页面。
感谢您的宝贵时间....
传递数据数组时,必须在变量名后包含一组空括号 []。这是为了减少常规变量和包含值数组的变量之间的混淆。
因此,在您的情况下,将您的方法签名从 subroutine print_list(list)
更改为 subroutine print_list(list[])
。
Referring to this link 如果您有任何其他问题。
根据网站上的信息,您不能将数组传递给您自己的子程序,只能传递给内部(内置)子程序。
如果变量本质上是全局的,那没问题,只需对数组执行任何你想要的操作,但如果它们需要是局部的,则不能使用 BASIC 的这种特殊变体来完成。
通读 documentation 后,有一个名为 'ref' 的函数允许您通过引用函数或子例程来传递变量或数组。这样做可以让我打印数组内容。
这是我之前重写的代码以通过引用传递数组:
subroutine print_list(list)
for element=0 to list[?]-1
print list[element]
next element
end subroutine
subroutine main()
list = {5.9, 6.0, 5.9, 5.7, 5.6, 5.7}
call print_list(ref(list))
end subroutine
call main()