2017-12-16 19 views
-3

私は[Dictionary<String, Any>][String: Any]を見ました。どちらも同じことをしているようです。違いはありますか?一つは他のものよりも優れているのか、それとも好ましいのですか?[Dictionary <String, Any>]と[String:Any]との違いは何ですか

+0

質問が広すぎますか?無関係なのか?どうしたの? –

+0

@matt私はそれを見ませんでした。これを重複としてマークして投票してください。 –

答えて

0

これらは同じです。 [X:Y]構文は辞書リテラルと呼ばれます。 Dictionary<X, Y>構文は明示的な形式です。 ([Dictionary<X, Y>]が辞書の配列であることを意味する場合は、別の辞書です)

1つの言語が他の言語よりも優れているかどうかは、主にスタイルの選択です。私は主に、実際には明示的な構文よりもリテラル構文を使用している人を見ています。

0

おそらくあなたは本当にDictionary<String, Any>[String: Any]を意味します。

彼らは単に同じもののための表記法です:

  • 辞書は、キータイプと値型の一般的なパラメータ化されているので、Dictionary<String,Any>は、ジェネリック型の表記を使用しています。

  • 簡略[String:Any]はちょうどそれです - より簡潔で直感的な言語として組み込まれている略語(「構文砂糖」)です。

しかし、[Dictionary<String,Any>]はもう一度別のものです。 [[String:Any]]またはArray<Dictionary<String,Any>>と同じです。また、Arrayは汎用であるが、[Type]の構文は構文的な砂糖として組み込まれているため、これも同じです。

0

実際には、一方は他方の要素を含む配列です。 [Dictionary<String:Any>][[String:Any]]のように書くことができるArray<Dictionary<String:Any>>、の省略形である

[String:Any]は、Dictionary<String:Any>の省略形です。

アレイ/辞書に省略表記を使用する場合は、配列は[Element]、辞書は[Key:Value]と書くことができます。 ElementKeyValueは、ここで辞書表記で:、あなたは二つのタイプ、キーの1と値のための1つの辞書を宣言する必要があるという事実に注目してくださいなどStringIntAny、などの具体的な種類を表します。

+0

'Element'、' Key'、 'Value'は' String'、 'Any'などの型を表現する必要があることを明確にすべきです。 – rmaddy

関連する問題