Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 带条件的快速过滤器_Ios_Swift - Fatal编程技术网

Ios 带条件的快速过滤器

Ios 带条件的快速过滤器,ios,swift,Ios,Swift,我正在创建一个过滤器来过滤一组车辆。我是根据价格、性能和可选的传动装置类型进行过滤的 func filterCarSpecifications(among carSpecifications: [CarSpecification]) -> [CarSpecification] { let filteredCars = carSpecifications.filter { let performance = $0.car.ps ?? 0.0 re

我正在创建一个过滤器来过滤一组车辆。我是根据价格、性能和可选的传动装置类型进行过滤的

func filterCarSpecifications(among carSpecifications: [CarSpecification]) -> [CarSpecification] {

    let filteredCars = carSpecifications.filter {

        let performance = $0.car.ps ?? 0.0

        return $0.pricing.price >= IoC.filterDataService.selectedMinPrice.rounded(.down)
            && $0.pricing.price <= IoC.filterDataService.selectedMaxPrice.rounded(.up)
            && performance >= IoC.filterDataService.selectedMinPerformance
            && performance <= IoC.filterDataService.selectedMaxPerformance
    }

    if IoC.filterDataService.autoTransmision {
        return filteredCars.filter {
            let transmission: GearingType = .automatic
            return $0.car.gearingType == transmission
        }
    }

    return filteredCars
}
func filtercarspecification(在CarSpecification中:[CarSpecification])->[CarSpecification]{
let filteredCars=carSpecifications.filter{
让性能=$0.car.ps±0.0
返回$0.pricing.price>=IoC.filterDataService.selectedMinPrice.rounded(.down)
&&$0.pricing.price=IoC.filterDataService.SelectedInPerformance
&&性能像这样附加它

func filterCarSpecifications(among carSpecifications: [CarSpecification]) -> [CarSpecification] {

let filteredCars = carSpecifications.filter {

    let performance = $0.car.ps ?? 0.0

    return $0.pricing.price >= IoC.filterDataService.selectedMinPrice.rounded(.down)
        && $0.pricing.price <= IoC.filterDataService.selectedMaxPrice.rounded(.up)
        && performance >= IoC.filterDataService.selectedMinPerformance
        && performance <= IoC.filterDataService.selectedMaxPerformance 
        && (IoC.filterDataService.autoTransmision) ? $0.car.gearingType == transmission : true
  }
}
func filtercarspecification(在CarSpecification中:[CarSpecification])->[CarSpecification]{
let filteredCars=carSpecifications.filter{
让性能=$0.car.ps±0.0
返回$0.pricing.price>=IoC.filterDataService.selectedMinPrice.rounded(.down)
&&$0.pricing.price=IoC.filterDataService.SelectedInPerformance
&&性能


对于初始条件,您可以这样写:

func filterCarSpecifications(among carSpecifications: [CarSpecification]) -> [CarSpecification] {

    let filteredCars = carSpecifications.filter {

        let performance = $0.car.ps ?? 0.0

        return $0.pricing.price >= IoC.filterDataService.selectedMinPrice.rounded(.down)
            && $0.pricing.price <= IoC.filterDataService.selectedMaxPrice.rounded(.up)
            && performance >= IoC.filterDataService.selectedMinPerformance
            && performance <= IoC.filterDataService.selectedMaxPerformance
            && (!IoC.filterDataService.autoTransmision || $0.car.gearingType == .automatic)
    }

    return filteredCars
}
func filtercarspecification(在CarSpecification中:[CarSpecification])->[CarSpecification]{
let filteredCars=carSpecifications.filter{
让性能=$0.car.ps±0.0
返回$0.pricing.price>=IoC.filterDataService.selectedMinPrice.rounded(.down)
&&$0.pricing.price=IoC.filterDataService.SelectedInPerformance

&&性能你能简单地解释一下逻辑是如何工作的吗?提前谢谢!
条件?true:false
相当于
如果条件{true}或者{false}
。希望你清楚这个解决方案。明白了!我习惯于在作业中使用它,但将它视为条件的一部分看起来并不那么简单。再次感谢。
func filterCarSpecifications(among carSpecifications: [CarSpecification]) -> [CarSpecification] {

    let filteredCars = carSpecifications.filter {

        let performance = $0.car.ps ?? 0.0

        return $0.pricing.price >= IoC.filterDataService.selectedMinPrice.rounded(.down)
            && $0.pricing.price <= IoC.filterDataService.selectedMaxPrice.rounded(.up)
            && performance >= IoC.filterDataService.selectedMinPerformance
            && performance <= IoC.filterDataService.selectedMaxPerformance
            && (!IoC.filterDataService.autoTransmision || $0.car.gearingType == .automatic)
    }

    return filteredCars
}