我在我的电脑上试过你的代码,没有问题,但是缩进的格式是错误的。
精灵代码缩进可以用制表符或空格来写;如果您使用空格,则必须在代码开头明确说明有多少...像这样 [indent=4]。喜欢这里http://manualgenie.blogspot.com.es/
但是如果你想使用制表符代替空格(更舒适),你必须确保在任何代码行之前没有空格。喜欢这里: http: //genie.webierta.skn1.com/wiki/colecciones
对于 Vala/genie 编程,我使用 Geany 编辑器,它有一个选项可以替换选项卡中的所有空格,或者任务栏的“文档”选项中的空格中的所有选项卡。
当问题是如何使用 o where use "var" 我将在这里解释: Var 用于仅在一个代码行中声明和定义一个标识符(变量)并临时使用。但是如果你想在类中拥有全局范围,让它对类的所有“def”过程有用,你必须在类的开头声明。就像上面的例子。此外,如果我们使用“init”来声明它,则该类必须定义为“GLib.Object”
class Arr:GLib.Object
a : array of int [] //declare
init
a = new array of int [100] //define
def arr_test()
i : int = 0
for i = 0 to 99
a[i] = i
for i = 0 to 99
print "%4d",a[i]
init
var v = new Arr()
v.arr_test()
此外,您可以声明它,但在您的“def”过程中定义。就像在这个例子中一样:
class Arr
a : array of int []
def arr_test()
a = new array of int [100]
i : int = 0
for i = 0 to 99
a[i] = i
for i = 0 to 99
print "%4d",a[i]
def arr_test2()
a = new array of int [120]
i : int = 0
for i = 0 to 119
a[i] = i
for i = 0 to 119
print "%4d",a[i]
init
var v = new Arr()
v.arr_test()
v.arr_test2()
注意:在这种情况下,我们不使用“init”,因此不需要声明:GLib.Object。