【问题标题】:Create a Genie Array创建精灵阵列
【发布时间】:2017-06-06 08:46:12
【问题描述】:

您好,我遇到了数组问题。

我有课 Arr var a = new array of int[100] 是问题所在。

该示例有效,但我将 var a ... 放在类 Arr (return) (Tab) 后面我收到此错误消息:

arr.gs:3.2-3.4: error: 语法错误,预期的声明,但得到了 `var' 和之前的 `tab indent'

有什么问题。对不起我的英语,对不起我不懂编辑

谢谢

class Arr
    def arr_test()
        var 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]
init
    Intl.setlocale()
    var v = new Arr()
    v.arr_test()

【问题讨论】:

标签: arrays var genie


【解决方案1】:

我在我的电脑上试过你的代码没有问题,但是缩进的格式不对。

精灵代码缩进可以用制表符或空格书写; 如果你使用空格,你必须明确有多少......像这样 [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。

【讨论】:

    【解决方案2】:

    谢谢,

    我的问题不是制表符或空格。我已经检查过了。

    这就是问题:

    类Arr

        var a = new array of int [100]
    
        def ...
    

    初始化

    ...

    ...等等。

    它是一个 Tab 没有空格。

    谢谢

    【讨论】:

    • 如果我理解您的意思,您在正确使用“var”方面存在问题。我会解释你的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-07
    • 2016-05-18
    • 2012-06-23
    相关资源
    最近更新 更多