2016-09-28 2 views
-1

私は素早く探し始め、配列の参照とアンラップの必要条件を見つけました。それによって私は辞書キー参照オプションの結果と迅速なアンラップの動機は何でしたか?

1> let interestingNumbers = [ 
    2.  "Prime": [2, 3, 5, 7, 11, 13], 
    3.  "Fibonacci": [1, 1, 2, 3, 5, 8], 
    4.  "Square": [1, 4, 9, 16, 25], 
    5. ] 

を意味する「スクエア」のうちの9を得るための1が

6> interestingNumbers["Square"]![2] 

どこそれをコーディングしなければならないことを要求!アンラップ演算子が本当に必要です。

古典的には、辞書の下付き文字が存在するかどうかがわからないときは、下付き文字を使用する前に辞書の下付き文字が存在するかどうかをテストするか、あなたが使っている言語。私は辞書では、テストでコードを囲まずに配列から値を取得するためのコードをすばやく書くことができるようになりました。これは、迅速に作業するときに辞書の参照をコーディングする方法について少し微調整することを意味します。

エラーが発生してどこに見えるのかが分かると、ドキュメンテーションはこれをすべて説明しています。

私は、辞書を使ってこのような振る舞いをすばやく与える動機があるのだろうかと思います。すなわち、スウィフトはなぜ例外的なメカニズムではなくこのルートに行きましたか、またはキーの存在をテストする機能を持つのはなぜですか?

私は、洞察が素早い機能を活用する上でより良いものになると信じています。

ありがとうございます!

+0

あなたはいつでも 'interestingNumbers [" Square "]?[2]'を実行できます。 – HAS

+0

さて、はい、私はそこにいることを知っている!そして?アンラップ演算子として、しかし条件付きの結果があるのはなぜですか?私は専門家や学術コミュニティが例外やテストのオーバーヘッドが高すぎるかもしれないと思っています。あるいは、より多くの文体的な理由があるかもしれません。それは、私が昔のプログラミングのマックを学んだ、怠惰な遅延評価スタイルのようなものです。条件付き結果の型を利用する特別なテクニックがありますか? – kd4ttc

答えて

1

スウィフトのデザイン哲学について論じる記事はそれ以上ありません。いくつかの言語には、そのようなことについてちょうど凝った本があります。その点では、エッフェルが気になります。私は興味深い部分であるhttp://swiftjester.org/papers/whats-different-about-swift.htmlを見つけました。

関連する問題