首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SwiftUI试图在数组中找到一个值并将其保存到一个Var中

SwiftUI试图在数组中找到一个值并将其保存到一个Var中
EN

Stack Overflow用户
提问于 2022-09-07 13:10:17
回答 1查看 23关注 0票数 0

我有一个基于这个结构的数组:

代码语言:javascript
运行
复制
struct Airports2: Identifiable, Codable, Hashable{
    var AirportID: String = ""
    var Icao: String = ""
    var ApType: String = ""
    var Name: String = ""
    var Latitude: String = ""
    var Longitude: String = ""
    var Altitude: String = ""
    var Continent: String = ""
    var Country: String = ""
    var Region: String = ""
    var Municipality: String = ""
    var Service: String = ""
    var GpsCode: String = ""
    var Iata: String = ""
    var LocalCode: String = ""
    var Link: String = ""
    var wikiLink: String = ""
    var Keyword: String = ""
    let id = UUID()
}

我想要创建一个函数,它的参数是与民航组织和民航组织相对应的字符串,找到机场的纬度,只将纬度保存在一个简单的变量中,然后返回它。

我的机场数组声明如下:

代码语言:javascript
运行
复制
var FR_airportsDB = [Airports2]()

我的搜索功能是这样的:

代码语言:javascript
运行
复制
func getApLat(ApName: String) -> Double{
    
    let LAT: Double
    
    var latFindString = FR_airportsDB.contains(Airports2.init(Icao: ApName))
    
    LAT = Double(latFindString)!
    
    return LAT
}

但是这是行不通的,我认为.contains不是最好的使用,但我不知道如何在结构化数组中进行搜索。

希望能把我的问题弄清楚。

谢谢你的帮忙

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-07 13:23:51

首先,请根据命名约定将变量命名为lowerCamelCase,并将结构命名为单数形式。

代码语言:javascript
运行
复制
var frAirportsDB = [Airport2]()

若要搜索特定属性值,请尝试获取数组first中的where项,将此属性is equal的值转换为参数中的值。

您必须返回一个可选项,因为该项可能不可用,并且无法将该字符串转换为Double。

代码语言:javascript
运行
复制
func getApLat(apName: String) -> Double? {
    
    guard let foundAirport = frAirportsDB.first(where: {$0.Icao == apName}),
          let lat = Double(foundAirport.Latitude) else { return nil }
    
    return lat
}

请添加CodingKeys将大写键转换为小写属性名称。并且结构中的所有默认值都不是必需的。即使没有,代码也会编译。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73636139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档