Swift apple文档中的max(by:)运算符示例不按所述工作?
我是新来的联合收割机/现在正在学习操作员, 我在apple developer文档中遵循了这个示例,但在Playdey中的输出是不同的 //网站显示Swift apple文档中的max(by:)运算符示例不按所述工作?,swift,max,documentation,combine,Swift,Max,Documentation,Combine,我是新来的联合收割机/现在正在学习操作员, 我在apple developer文档中遵循了这个示例,但在Playdey中的输出是不同的 //网站显示 enum Rank: Int { case ace = 1, two, three, four, five, six, seven, eight, nine, ten, jack, queen, king } let cards: [Rank] = [.five, .queen, .ace, .eight, .jack] cancella
enum Rank: Int {
case ace = 1, two, three, four, five, six, seven, eight, nine, ten, jack, queen, king
}
let cards: [Rank] = [.five, .queen, .ace, .eight, .jack]
cancellable = cards.publisher
.max {
return $0.rawValue > $1.rawValue
}
.sink { print("\($0)") }
// Prints: "queen"
我的游乐场展示:
import Combine
enum Rank: Int {
case ace = 1, two, three, four, five, six, seven, eight, nine, ten, jack, queen, king
}
let cards: [Rank] = [.five, .queen, .ace, .eight, .jack]
cards.publisher
.max {
return $0.rawValue > $1.rawValue
}
.sink { print("\($0)") }
//Prints: "ace"
我试图解决“数组中最常见的名称”问题,但它仅在使用“”查找最大值时有效/
import Combine
var subscriptions = Set<AnyCancellable>()
let nameArray: [String] = ["bob", "james", "bob", "james", "lee", "bob", "bob"]
nameArray
.filter{ !$0.isEmpty }
.reduce(into: [String: Int]()){ $0[$1] = ($0[$1] ?? 0) + 1 }
.publisher
.max {$0.1 < $1.1 }
.sink{print($0)}
.store(in: &subscriptions)
//Prints: "(key: "bob", value: 4)"
导入联合收割机
var subscriptions=Set()
let nameArray:[字符串]=[“鲍勃”、“詹姆斯”、“鲍勃”、“詹姆斯”、“李”、“鲍勃”、“鲍勃”]
名称数组
.filter{!$0.isEmpty}
.reduce(转换为:[String:Int]()){$0[$1]=($0[$1]??0)+1}
出版商
.max{$0.1<$1.1}
.sink{print($0)}
.store(位于:&订阅中)
//打印:“(键:“bob”,值:4)”
苹果的文件有可能是错的吗?
还是我做错了什么?我想你可能是对的,这是苹果文档中的一个错误。
max
的参数说明如下:
正在增加订单
一个闭包,它接收两个元素,如果它们的顺序是递增的,则返回true
您会注意到,增加顺序意味着$0.rawValue
将小于$1.rawValue
。示例代码改为使用
,但仍然希望打印queen
——我觉得这不对。如果我将运算符翻转为,请参见。请注意以下解释:
您可以提供一个函数,并手动决定参数的顺序是否更小–更大,返回Bool以指示是否是这种情况
(我的斜体字)
但你是说
return $0.rawValue > $1.rawValue
因此,您没有正确回答这些产品是否订购较小或较大的问题。相反,说
return $0.rawValue < $1.rawValue
返回$0.rawValue<$1.rawValue
您需要使用@Leo Dabus,因此苹果文档中的示例是错误的?/感谢您对默认值的建议Yes是错误的。如果您检查相同的数组方法,您将看到正确的示例。感谢您的快速回复,我试图更新您的答案,但我是新手,没有“15”的声誉,我只是提交了反馈/感谢您的回复,我阅读了您共享的链接/因此苹果文档中的示例可能是错误的?