arrays - Swift sequences prefix(while:) return not all elements -
i have issue. testing usage of prefix(while:) , receive not expected result.count of elements after prefix(while:) missing 1 element. code possible see structures name has prefix oleg 5 after prefix(while:) returns 4.
example :
struct user { let name: string } let users = [user(name : "oleg 1"),user(name : "oleg 2"),user(name : "oleg 3"),user(name : "oleg 4"),user(name : "igor 1"),user(name : "oleg 5"),user(name : "max 1")] print(users.prefix { $0.name.hasprefix("oleg") }.count) //4
from documentation array prefix method:
returns subsequence containing initial elements until predicate returns false , skipping remaining elements.
when code gets "igor 1" instance, prefix stops , returns first subrange giving result of 4.
don't confuse array prefix method , string hasprefix method. used 2 different things.
perhaps want use filter.
print(users.filter { $0.name.hasprefix("oleg") }.count) // 5
Comments
Post a Comment