2016-06-12 13 views
-7

コードの単純な辞書のコンテンツへのアクセスは:スウィフト:

var dictionnary: [Int: Int] = [25: 32] 
var test = "dictionary" 

print (dictionary[25]) 
print (test[25]) 

私は、コードの最後の行のようにコンテンツに辞書にアクセスしたいです。 私は使用しなければならない辞書の名前を検出する必要があります。だから私は文字列型の変数に辞書の名前を格納する義務があります。

error i get with last line of code

どのように私は進むことができます: はこのエラーを取得しますか?

私は問題を説明するための簡単な例を作ろうとしましたが、間違いを犯しました。 私の問題は、文字列を変数名などに変換することに関連していません。

実際には、それぞれに10個の辞書があります。私は私のデータをつかむために良いものを特定する必要があります。

良い辞書の名前を含む文字列型の変数を取得しましたが、この辞書の内容にアクセスしようとするとエラーが発生します。

私は再び投稿することができますときに正しくこれを説明しようとする...あなたは既にこのコードをあなたの辞書命名しました

+1

を削除するあなたは

var test = dictionary 

をしたいと思います - あなたは後方いくつかの手順を取ると、あなたは何をしているかを再考する必要があります。変数には名前でアクセスしてはいけません。 – luk2302

+0

あなたの迅速な対応に感謝します。 –

答えて

-1

私はあなたが進むことはできません引用

+0

これは私の問題を解決します。 –

+1

これは、Swift( 'Dictionary'は' struct'です)の値型の性質上、 'dictionary'の参照ではなく、コピーを作成していることに注意してください。あなたの 'dictionary'変数へのあらゆる変異は' test'に反映されません。 – Hamish

+0

@ D.PEPIN私の答えがあなたを助けたら、それを受け入れることができますか?ありがとう! – penatheboss

0

:あなたの辞書が呼び出され

var dictionary: [Int: Int] = [25: 32] 

「辞書。 "(あなたは間違ってそれを綴ったが、私は、これはあなたがのために行っていた何だと思います

をキー25の値にアクセスするには、その正しく行ってきた:

print (dictionary[25]) 

testという変数を作る必要はありません。文字列は、SWIFTの配列のようには作用しないが、それは

print(test[25]) 

をしなかった場合は非existantである文字列「辞書」、第26回で文字にアクセスすることになります。