2017-01-21 3 views
0

Привет У меня проблема с массивами.Создать массив Genie

У меня есть класс. Отправьте var a = new array of int[100].

пример работает, но Венна я поставил УАК и ... за класс Arr (возврат) (Tab) у меня есть сообщение об ошибке:

arr.gs:3.2-3.4: error: syntax error, expected declaration but got `var' with previous `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() 
+0

Нет проблем :) Может быть, это помогает понять код форматирования: http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks – ppasler

ответ

1

Я попробовал ваш код в моем компьютере и без проблем, но формат отступ был неправ.

Отступ от кода Genie может быть отложен с помощью вкладок или пробелов; Если вы используете пробелы, вы должны указать, сколько именно ... [indent = 4] в начале кода. Как здесь http://manualgenie.blogspot.com.es/

Но если вы хотите использовать закладки вместо пробелов (более удобные), вы должны убедиться, что перед кодовой строкой не существует пробелов. Как и здесь: http://genie.webierta.skn1.com/wiki/colecciones

Для программирования Vala/genie я использую редактор Geany, и у него есть опция для замены всех пробелов в вкладках или всех вкладок в пробелах в опции «Документ» панели задач.

Счастливое программирование с Genie !!! Espero дие се Hayas entendido; ->

Когда проблема заключается в том, чтобы использовать о где использование «вар» Я объясню здесь: 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.

Я надеюсь, что это может объяснить ваш вопрос. Мой английский тоже не очень хорош. : -/

0

Спасибо,

моя проблема не в закладке или пробеле. Я проверил это.

Это проблема:

класс Arr

var a = new array of int [100] 

    def ... 

INIT

...

... и так далее.

Это одна таблетка без пространства.

Благодаря

+0

Если я понимаете, у вас есть проблемы с правильным использованием «var». Я объясню вам – txasatonga

+0

Я снова отредактировал свой ответ. – txasatonga