2017-01-21 1 views
0

Bonjour, J'ai un problème avec les tableaux. J'ai la classe Arr var a = new array of int[100] est le problème.Créer un tableau de génies

L'exemple fonctionne, mais je mets wenn l'une var ... behind Arr (retour) (Tab) j'ai ce message d'erreur:

arr.gs:3.2-3.4: error: syntax error, expected declaration but got `var' with previous `tab indent'

Quel est le problème. Désolé pour mon anglais, désolé, je ne comprends pas l'éditeur

grâce

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

Pas de problème :) Peut-être que cela aide à comprendre le code de mise en forme: http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks – ppasler

Répondre

1

J'ai essayé votre code dans mon ordinateur et pas de problème, mais le format du tiret trompais.

L'indentation de code de génie peut être écrite avec des tabulations ou des espaces; Si vous utilisez des espaces, vous devez en spécifier combien ... comme ceci [indent = 4] au début du code. Comme ici http://manualgenie.blogspot.com.es/

Mais si vous voulez utiliser des tabulations à la place des espaces (plus confortable), vous devez vous assurer qu'il n'y a pas d'espace avant une ligne de code. Comme ici: http://genie.webierta.skn1.com/wiki/colecciones

Pour la programmation Vala/genie j'utilise l'éditeur Geany et il a une option pour remplacer tous les espaces dans les onglets, ou tous les onglets dans les espaces dans l'option "Document" de la barre des tâches.

Bonne programmation avec Génie !!! Espero que lo hayas entendido; ->

Lorsque le problème est de savoir comment utiliser o où l'utilisation « var » Je vais expliquer ici: Var est utilisé pour Déclarez et définir dans une seule ligne de code un identificateur (variable) et pour être utilisé temporairement. Mais si vous voulez avoir une portée globale dans la classe, en la rendant utile pour toutes les procédures "def" de la classe, vous devez déclarer au début de la classe. Comme l'exemple ci-dessus. De plus, si nous utilisons « init » pour déclarer le « GLib.Object » classe doit être définie comme

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() 

Aslo, vous pouvez le déclarer, mais définir après dans vos procédures « def ». Comme dans cet exemple:

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() 

Note: Dans ce cas, nous ne pas utiliser « init », est donc pas besoin de la déclaration: GLib.Object.

J'espère que cela peut expliquer votre question. Mon anglais n'est pas bon aussi. : -/

0

Merci,

mon problème n'est pas l'onglet ou l'espace. J'ai vérifié cela.

C'est le problème:

classe Arr

var a = new array of int [100] 

    def ... 

initialisation

...

... et ainsi de suite.

Il s'agit d'une tabulation sans espace.

Merci

+0

Si je vous comprendre, vous avez des problèmes avec l'utilisation correcte de "var". Je vais vous expliquer – txasatonga

+0

J'ai encore modifié ma réponse. – txasatonga