2017-01-21 4 views
0

こんにちは私は配列の問題があります。Genie配列を作成する

私はクラスArrを持っていますvar a = new array of int[100]が問題です。問題は何

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

例がなく、wenn作品私は私がこのエラーメッセージを持っているクラス編曲(リターン)(タブ)の後ろに... VAR aを置きます。私の英語のため申し訳ありませんが、申し訳ありません私は編集者に

おかげ

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

を理解していない私は自分のコンピュータと問題なしで、あなたのコードを試してみましたが、インデントのフォーマットが間違っていました。

ジーニー・コード・インデントは、タブまたはスペースで記録できます。 スペースを使用する場合は、コードの先頭にこのような... [indent = 4]のような数を明示的に指定する必要があります。ここのようにhttp://manualgenie.blogspot.com.es/

しかし、スペースを使わずにタブを使いたい場合は、コードラインの前にスペースがないようにする必要があります。ここでは:http://genie.webierta.skn1.com/wiki/colecciones

私はGeanyエディタを使用しています。これは、タブ内のすべてのスペースを置き換えるオプション、またはタスクバーの "ドキュメント"オプションのスペース内のすべてのタブを置き換えるオプションがあります。

Genieでハッピープログラミング! ESPERO QUEのLOのhayasのentendido; - >

の問題は、私がここで説明する場所の使用「VAR」oを使用する方法であるとき: ヴァールを宣言するために使用され、唯一のコード行に1つの識別子(変数)を定義し、一時的に使用される。しかし、グローバルスコープをクラスに持たせたい場合は、そのクラスのすべての "def"プロシージャで有効にするには、クラスの先頭に宣言する必要があります。上記の例のように。私たちは宣言のための「初期化」を使用した場合も、それはクラスが「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() 

Asloとして定義する必要があり、あなたはそれを宣言することができますが、あなたの「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() 

注:GLib.Object:この場合、私たちはそのための宣言を必要とせず、「初期化」を使用しないでください。

これはあなたの質問を説明してくれることを願っています。私の英語はあまり良くありません。 :/

0

ありがとう、

私の問題はタブまたはスペースではありません。私はこれをチェックした。

これは問題です:ように

クラス編曲

var a = new array of int [100] 

    def ... 

のinit

...

...と。

タブのないスペースです。

おかげ

+0

場合Iあなたは "var"の正しい使い方に問題があることを理解しています。私はあなたを説明します – txasatonga

+0

私は再び私の答えを編集しました。 – txasatonga