文書   >   Swift   >   Dictionary   >   subscript(_:default:)
サブスクリプト
subscript(_:default:)
与えられたキーで値にアクセスします。辞書に与えられたキーが含まれていない場合、キーとデフォルト値が辞書に存在するかのように、提供されたデフォルト値にアクセスします。
宣言
パラメータ
key | 辞書内で検索すべきキー。 |
defaultValue | Key が辞書内に存在しない場合に使用すべきデフォルト値。 |
戻り値
辞書内の Key に関連した値。それ以外の場合、defaultValue`。
議論
特定のキーの値が必要な場合、またはそのキーがデフォルト値である辞書内に存在しない場合は、このサブスクリプトを使用します。この例では、HTTP 応答コードが認識されない場合に使用すべきメッセージとともにサブスクリプトを使用しています。
var responseMessages = [200: "OK",
403: "Access forbidden",
404: "File not found",
500: "Internal server error"]
let httpResponseCodes = [200, 403, 301]
for code in httpResponseCodes {
let message = responseMessages[code, default: "Unknown response"]
print("Response \(code): \(message)")
}
// Prints "Response 200: OK"
// Prints "Response 403: Access Forbidden"
// Prints "Response 301: Unknown response"
辞書の Value 型に値の意味がある場合、このサブスクリプトを使用して、辞書内の値に対してその場で操作を実行できます。以下の例では、このサブスクリプトを使用して、文字列内の各文字の出現回数をカウントします。
let message = "Hello, Elle!"
var letterCounts: [Character: Int] = [:]
for letter in message {
letterCounts[letter, defaultValue: 0] += 1
}
// letterCounts == ["H": 1, "e": 2, "l": 4, "o": 1, ...]
letterCounts[letter, defaultValue: 0] += 1 が既に letterCounts 内のキーではない letter の値で実行されると、指定されたデフォルト値 (0) がサブスクリプトから返され、増分されてからそのキーの下の辞書に追加されます。
辞書の Value 型がクラスの場合、このサブスクリプトを使用して辞書の値を変更しないでください。この場合、デフォルト値とキーは、操作後に辞書に書き戻されません。
以下も見よ
キーと値へのアクセス
読み取りおよび書き込みのために、与えられたキーに関連した値にアクセスします。
func index(forKey: Key) -> Dictionary<Key, Value>.Index?
与えられたキーのインデックスを返します。
subscript(Dictionary<Key, Value>.Index) -> Dictionary<Key, Value>.Element
指定された位置にあるキー値のペアにアクセスします。
var keys: Dictionary<Key, Value>.Keys
辞書のキーだけを含むコレクション。
var values: Dictionary<Key, Value>.Values
辞書の値だけを含むコレクション。
var first: (key: Key, value: Value)?
コレクションの最初の要素。
func randomElement() -> (key: Key, value: Value)?
コレクションのランダムな要素を返します。
func randomElement<T>(using: inout T) -> (key: Key, value: Value)?
与えられた発生器を乱数のソースとして使用して、コレクションのランダム要素を返します。
トップへ
トップへ
トップへ
トップへ
トップへ