2016-04-19 14 views
0

インデックスが範囲外になります。 構文エラーまたはロジックがありますか?スイフトアレイの基礎

func generateGameBoard()->([Int]){ 
     var gboard = [Int](); 
     var i : Int = 0; 
     for(i=0;i<8;i++){ 
      gboard[i]=1; 
     } 
     return gboard; 
    } 
} 

答えて

1
var gboard = [Int](); // you are creating an empty array here. 

はあなたが

gboard.append(1) instead of gboard[i]=1; 

とCスタイルのforループと同様に、配列 に値を追加する必要があり++ opeartor SWIFTの次のバージョンでは使用しません。

1

あなたのコードには誤りがありません。空の配列を作成し、0 .. < 8のインデックスを要求します。これは無効です。内容を繰り返し処理するには、実際にのカウントを使用する必要があります。

func generateGameBoard()->([Int]){ 
     var gboard = [Int](); 
     for i in 0 ..< gboard.count { 
      gboard[i]=1; 
     } 
     return gboard; 
    } 
0

また、swift 3を準備してforループ部分を更新する必要があります。それは即座に立て続けにコンパイルされません。あなたはそれを次のように変更する必要があります。 0のiの場合。