2017-05-21 19 views
0

をループしながら、次のコードが働い:(インデックス、値)ペアスイフト2.0の配列

import UIKit 

var arr = [5, 77, 34, -22] 

for (index, value) in enumerate(arr) { 

    // arr[index] = value + 1  This works, but the line below is more relevant for the following code. 

    arr[index] = arr[index] + 1 

} 

println(arr) 

与えるために:

[6, 78, 35, -21] 

を私は、次のとスイフト3.0で同じことを試みましたコード:実行中断された、reaso:

import UIKit 

var arr = [5, 77, 34, -22] 

var y = arr.count 

for x in 0...y { 

    arr[x] = arr[x] + 1 

} 

print(arr) 

しかし、私は、forループ」というエラーが内部のみのラインのためのエラーを得ましたn:EXC_BAD_INSTRUCTION "何が間違っていたか、または最初のプログラムのように(インデックス、値)ペアを得るために使用できる構文についてのアイデアはありますか?

答えて

1

新しい変数を宣言していないので、letを削除するだけです。

いっそのこと、ちょうどmapを使用します。

let numbers = [5, 77, 34, -22] 
let incremented = numbers.map{ $0 + 1 } 
+0

削除letが問題を解決しませんでした。 「エラー:実行が中断されました。理由:EXC_BAD_INSTRUCTION」というエラーが表示されました。私の投稿をこの情報で更新します。 – StopReadingThisUsername

+0

@StopReadingThisUsernameあなたがループしているインデックスを注意深く見てください – Alexander

+0

ああ、そうです。あなたの助けをありがとう! – StopReadingThisUsername

関連する問題