2016-08-10 8 views
1

私は迅速に学習しており、辞書で反復しようとしています。変数lがnilあなたのコメントから辞書swiftで辞書を反復する

for (key , value) in LandsDictionary{ 
       print(key) 
       print(value) 
      } 
+1

あなたは、このコードを実行するために取得することができますか?コンパイラは決してあなたがこれを行うことを許可しないので、オプションの文字列にタプルを代入しようとすると、l?+ = landになります。 – iamyogish

+0

また、どの値を変数lに読み込もうとしているのかをお知らせください。 – iamyogish

+0

私はPlaygroundでそれを実行しています。 LandsDictionary { l?+ = land } – User1238

答えて

0

これは、2つの異なる方法でキーと値を取得する方法の例です。より多くのコレクションについて読むことを試みてください。

let LandsDictionary = ["DE":"Germany", "FR":"France"] 

var keys :String = "" 

var values :String = "" 

//Iteration is going on properly and fetching key value. 
for land in LandsDictionary { 

    print (land) // "DE":"Germany" and "FR":"France" 

    keys += land.0 

    values += land.1 
} 

//All keys 
print(keys) 

//All values 
print(values) 

//If you would like to recive all values and all keys use standart method of the collection. 

let allKeys = LandsDictionary.keys 

let allValues = LandsDictionary.values 
0

である理由を教えてくださいすることができ、私はあなたが変数に国名を読み取ろうとしていると仮定します"l"。

let LandsDictionary = ["DE":"Germany", "FR":"France"] 

var l:String? 
//You need to assign an initial value to l before you start appending country names. 
//If you don't assign an initial value, the value of variable l will be nil as it is an optional. 
//If it is nil, l? += value which will be executed as optional chaining will not work because optional chaining will stop whenever nil is encountered. 
l = "" 

for (key, value) in LandsDictionary{ 
    l? += value 
} 
print (l) 

・ホープ、このことができます、このコードスニペットを試してみてください。

1

を反復するためのエンド

let LandsDictionary = ["DE":"Germany", "FR":"France"] 

var l:String? 

for land in LandsDictionary{ 
    l?+=land 
} 
print (l) 
3

この辞書ではすべてのキーと値がオプションではないため、オプションの変数を使用する必要はありません。

let landsDictionary = ["DE":"Germany", "FR":"France"] 

var l = "" 

// the underscore represents the unused key 
for (_, land) in landsDictionary { 
    l += land 
} 
print (l) // "GermanyFrance" 

またはループなし

let v = Array(landsDictionary.values).joinWithSeparator("") 
print (v) // "GermanyFrance" 
関連する問題