Jak uzyskać wartość klucza ze słownika w języku Swift?

84

Mam słownik języka Swift. Chcę poznać wartość mojego klucza. Obiekt dla metody klucza nie działa dla mnie. Jak uzyskać wartość klucza słownika?

To jest mój słownik:

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

for name in companies.keys { 
    print(companies.objectForKey("AAPL"))
}
DuyguK
źródło
5
Wszystko to jest opisane w dokumentacji: developer.apple.com/library/prerelease/mac/documentation/Swift/ ...
Martin R
„Możesz także użyć składni indeksu dolnego, aby pobrać ze słownika wartość dla określonego klucza… if let airportName = airports["DUB"] { … }
Martin R

Odpowiedzi:

172

Użyj indeksowania, aby uzyskać dostęp do wartości klucza słownika. Spowoduje to zwrócenie opcjonalnego:

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

lub

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

Możesz również wyliczyć wszystkie klucze i wartości:

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

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

Lub wylicz wszystkie wartości:

for value in Array(companies.values) {
    print("\(value)")
}
Prine
źródło
25

Z Apple Docs

Możesz użyć składni indeksu dolnego, aby pobrać wartość ze słownika dla określonego klucza. Ponieważ istnieje możliwość zażądania klucza, dla którego nie istnieje żadna wartość, indeks słownika zwraca opcjonalną wartość typu wartości słownika. Jeśli słownik zawiera wartość dla żądanego klucza, indeks dolny zwraca opcjonalną wartość zawierającą istniejącą wartość dla tego klucza. W przeciwnym razie indeks dolny zwraca 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."
Sebin Roy
źródło