我希望能够初始化一个空数组结构,该结构具有 .append()
的能力并且可以保存类似于以下的信息:
var locations = [
["title": "New York, NY", "latitude": 40.713054, "longitude": -74.007228],
["title": "Los Angeles, CA", "latitude": 34.052238, "longitude": -118.243344],
["title": "Chicago, IL", "latitude": 41.883229, "longitude": -87.632398]
]
这个数据类型是字典数组的数组吗?我希望能够通过 location
访问 title
、latitude
和 longitude
并且我从未使用过像这样,所以我不确定如何初始化和 .append()
最佳答案
您的结构是字典数组:[[String : Any]]
。
正如@Hamish 在评论中建议的那样,最好将数据存储为结构数组。
这是一种可能的实现方式:
struct Location: CustomStringConvertible {
var title: String
var latitude: Double
var longitude: Double
var description: String { return "(title: \(title), latitude: \(latitude), longitude: \(longitude))"}
}
var locations = [
Location(title: "New York, NY", latitude: 40.713054, longitude: -74.007228),
Location(title: "Los Angeles, CA", latitude: 34.052238, longitude: -118.243344),
Location(title: "Chicago, IL", latitude: 41.883229, longitude: -87.632398)
]
// Append a new location...
locations.append(Location(title: "Boston, MA", latitude: 42.3601, longitude: -71.0589))
print(locations)
[(title: New York, NY, latitude: 40.713054, longitude: -74.007228), (title: Los Angeles, CA, latitude: 34.052238, longitude: -118.243344), (title: Chicago, IL, latitude: 41.883229, longitude: -87.632398), (title: Boston, MA, latitude: 42.3601, longitude: -71.0589)]
func lookUp(title: String, in locations: [Location]) -> [Location] {
return locations.filter { $0.title.range(of: title) != nil }
}
print(lookUp(title: "CA", in: locations))
[(title: Los Angeles, CA, latitude: 34.052238, longitude: -118.243344)]
print(lookUp(title: "Chicago", in: locations))
[(title: Chicago, IL, latitude: 41.883229, longitude: -87.632398)]
关于arrays - 如何初始化信息数组并追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41523857/