下記のコードをまず見ていただきたいのですが、
case1は通常通り宣言し、空配列を入れており ,
case2はOptionalで宣言してあります。
Optionalにて宣言した場合、appendが使えないのは何故なんでしょうか?
Optionalであるから、ArrayやStringのクラスのメソッドは使えないのかなと思ったのですが、first、lastなどのメソッドは使用できるようでエラーはありません。
Optionalへの根本的理解が足りてないのかと思いますが、、
基礎的な質問で申し訳ないです、ご回答よろしくお願い致します
swift
1var dictionary: [String:String] = ["name": "nanashi", "age" : "30", "live" : "Japan"] 2 3 4//case 1 5var test :[String] = [] 6 7 8----修正前---- 9//case 2 => error : [String]? has no member 'append' 10var test :[String]? = [] 11 12 13----修正後---- 14//case 2 => error : [String]? has no member 'append' 15var test :[String]? = [] 16 17//case 3 18print(test?.first) 19 20//辞書をループで回し、valueを test配列に入れる。 21for (key,value) in dictionary { 22 test.append(value) 23 24} 25 26print(test)
追記 再現できていなかったので、もう一度編集します。
----修正後----
だと、print(test)がnilになってしまいます。
それはなぜでしょうか。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/29 09:09
2016/01/29 09:29
2016/01/29 09:30