Làm cách nào để lấy giá trị của khóa từ từ điển trong Swift?


83

Tôi có một từ điển Swift. Tôi muốn nhận được giá trị của khóa của tôi. Đối tượng cho phương pháp khóa không hoạt động đối với tôi. Làm thế nào để bạn nhận được giá trị cho khóa của từ điển?

Đây là từ điển của tôi:

var companies = ["AAPL" : "Apple Inc", "GOOG" : "Google Inc", "AMZN" : "Amazon.com, Inc", "FB" : "Facebook Inc"]

for name in companies.keys { 
    print(companies.objectForKey("AAPL"))
}

5
Đó là tất cả được đề cập trong tài liệu: developer.apple.com/library/prerelease/mac/documentation/Swift/…
Martin R

"Bạn cũng có thể sử dụng cú pháp subscript để lấy một giá trị từ điển cho một phím đặc biệt ... if let airportName = airports["DUB"] { … }"
Martin R

Câu trả lời:


167

Sử dụng đăng ký để truy cập giá trị cho khóa từ điển. Điều này sẽ trả về Tùy chọn:

let apple: String? = companies["AAPL"]

hoặc là

if let apple = companies["AAPL"] {
    // ...
}

Bạn cũng có thể liệt kê tất cả các khóa và giá trị:

var companies = ["AAPL" : "Apple Inc", "GOOG" : "Google Inc", "AMZN" : "Amazon.com, Inc", "FB" : "Facebook Inc"]

for (key, value) in companies {
    print("\(key) -> \(value)")
}

Hoặc liệt kê trên tất cả các giá trị:

for value in Array(companies.values) {
    print("\(value)")
}

24

Từ Apple Docs

Bạn có thể sử dụng cú pháp chỉ số dưới để lấy giá trị từ từ điển cho một khóa cụ thể. Vì có thể yêu cầu một khóa mà không có giá trị nào tồn tại, chỉ số con của từ điển trả về một giá trị tùy chọn của kiểu giá trị của từ điển. Nếu từ điển chứa giá trị cho khóa được yêu cầu, thì chỉ số con trả về một giá trị tùy chọn chứa giá trị hiện có cho khóa đó. Nếu không, chỉ số con trả về nil:

https://developer.apple.com/documentation/swift/dictionary

if let airportName = airports["DUB"] {
    print("The name of the airport is \(airportName).")
} else {
    print("That airport is not in the airports dictionary.")
}
// prints "The name of the airport is Dublin Airport."
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.