如何在 Swift 中从 dictionary 中获取键的值?

我有一本斯威夫特字典。我想得到我的钥匙的值。对象的键方法对我不起作用。如何得到字典的键值?

这是我的字典:

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


for name in companies.keys {
print(companies.objectForKey("AAPL"))
}
225044 次浏览

Use subscripting to access the value for a dictionary key. This will return an Optional:

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

or

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

You can also enumerate over all of the keys and values:

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


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

Or enumerate over all of the values:

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

From Apple Docs

You can use subscript syntax to retrieve a value from the dictionary for a particular key. Because it is possible to request a key for which no value exists, a dictionary’s subscript returns an optional value of the dictionary’s value type. If the dictionary contains a value for the requested key, the subscript returns an optional value containing the existing value for that key. Otherwise, the subscript returns 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."

For finding value use below

if let a = companies["AAPL"] {
// a is the value
}

For traversing through the dictionary

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

Finally for searching key by value you firstly add the extension

extension Dictionary where Value: Equatable {
func findKey(forValue val: Value) -> Key? {
return first(where: { $1 == val })?.key
}
}

Then just call

companies.findKey(val : "Apple Inc")