2016-07-14 9 views
2

初心者のための初心者は、人為的な例です。 私はメニュー項目の配列を持っています。これにはメニュー項目があります カテゴリをループして項目のサブ配列の要素を読みたいと思います。 {apple swift - 変数から配列を参照しています。

var menuOffering = ["drinks" , "breakfastEntree"] 
var drinks: Set = ["water","milk","coffee","tea","diet coke"] 
var breakfastEntree: Set = ["eggs", "bacon", "sausage","pancakes"] 




for (offering) in menuOffering { 
    print ("\(offering)") 
    for (item) in offering { ERROR 
     print ("\(item)") 
    } 

} 
を提供することに(アイテム)のために「配列」 タイプ「string」は、プロトコルに準拠していない:配列としてライン10で

ERROR、COL 18の要素を参照するための構文を知りません

+0

あなたの説明から、あなたはおそらくここにセットを望んでいないでしょう。おそらく配列を必要とするだけなので、 ':Set'を削除して型推論を行います。セットは順不同です(これらは順序どおりにプリントアウトできます)。また、コレクションが非常に大きく、一般的な操作が「テスト・ウェアーXがセットのメンバー」である場合に、一般的に使用されます。日々の使用のためには、一般的には配列が必要です(なぜなら、あなたが ':Set'を要求しないなら、それらを無料で入手する理由です)。あなたの実際の質問には、下記のtriple.sを参照してください。 –

+0

ソリューションのおかげで....今すぐトラッキング – Jake

答えて

6

menuOfferingは、引用符で囲んだので、配列はStringです。この場合、drinksbreakfastEntreeです。だからあなたは文字列を繰り返してエラーを取得しようとしています。その代わりに、配列を次のように定義します。

var menuOffering = [drinks , breakfastEntree] // without quotes 

これでセットの配列になります。 あなたは、コードを変更する必要があります。

var drinks: Set = ["water","milk","coffee","tea","diet coke"] 
var breakfastEntree: Set = ["eggs", "bacon", "sausage","pancakes"] 

var menuOffering = [drinks , breakfastEntree] 

for (offering) in menuOffering { 
    for (item) in offering { 
     print ("\(item)") 
    } 

} 
1

menuOfferingがセットの配列です。引用符がなければ、変数名はセットの含まれている値にアクセスし、以下に示すネストされた形式で反復することができます。

print("string: \(variableName)") 

「印刷」の間にスペースを含めないことを確認してください。また、あなたは以下のように文字列で変数名を含めるしようとしていない場合、私は上記のやった変数をプリントアウトすることができます

let drinks: Set = ["water", "milk", "coffee", "tea", "diet coke"] 
let breakfastEntree: Set = ["eggs", "bacon", "sausage", "pancakes"] 

let menuOffering = [drinks, breakfastEntree] 

for offering in menuOffering { 
    for item in offering { 
     print(item) 
    } 
} 

およびかっこ

関連する問題