2017-03-14 16 views
0

私はforループを持っており、 '現在の'インデックスにアクセスしたいと考えています。 Xcodeは私に刺激的なエラーを与えています。閉鎖範囲を使用するSwift Forループ

for k in [1...map.dates.count-1] 
    { 
     map.returns.append((map.closingPrices[k]-map.closingPrices[k-1])/map.closingPrices[k-1]) 
    } 

だから私は基本的にやっているBとAは、いくつかの配列(closingPrices)で連続した要素であり、リターン(B-A)/ Aを計算し、for k in [1..10]です。

コンパイラはclosingPricesにアクセスするためにkを使用して私と一緒に何の問題がありませんが、私はk-1を使用する場合には、kが整数ではないので、それはCountableClosedRange<Int>で動揺取得します。 ' - ' タイプCountableClosedRangeとのIntに適用することはできません

エラーが

二項演算子と言います。

私はコードを書き直してkの整数値にアクセスし、そこから1を引いてコンパイラエラーを取得しないようにするにはどうすればよいですか?

+1

角括弧を使用せずに、おそらく 'for k ... 1 map.dates.count-1 {...}'を使用したいと思うかもしれません。 –

+0

はいごめんなさい文法が間違っているだけです!本当にありがとう。回答として投稿してください。 – Vazzyb

+1

'1 ... map.dates.count-1'とまったく同じですが、' k for 1 .. creeperspeak

答えて

2
[1...map.dates.count-1] 

戻り、単一の範囲を含む配列は、ので、あなたのループカウンタを使用すると、期待どおりの整数が、範囲のオブジェクトではありません。

for k in 1...map.dates.count-1 
{ 
    map.returns.append((map.closingPrices[k]-map.closingPrices[k-1])/map.closingPrices[k-1]) 
} 
+4

'-1'を引いた場合、' 1 .. Sulthan

関連する問題