當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Swift Dictionary subscript(_:default:)用法及代碼示例


實例下標

subscript(_:default:)

使用給定鍵訪問值,如果找不到該鍵,則回退到給定的默認值。

聲明

subscript(
    key: Key,
    default defaultValue: @autoclosure () -> Value
) -> Value { get set }
Key 符合 Hashable 時可用。

返回值

字典中與key相關的值;否則,defaultValue

參數

key

在字典中查找的鍵。

defaultValue

如果字典中不存在key,則使用默認值。

概述

如果您想要特定鍵的值,或者當字典中不存在該鍵時,請使用此下標。此示例使用帶有消息的下標,以防無法識別 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, default: 0] += 1
}
// letterCounts == ["H": 1, "e": 2, "l": 4, "o": 1, ...]

letterCounts[letter, default: 0] += 1 使用 letter 的值執行時,該值還不是 letterCounts 中的鍵,從下標返回指定的默認值 ( 0 ),遞增,然後添加到該下的字典中鑰匙。

可用版本

iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+

相關用法


注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 Dictionary subscript(_:default:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。