【发布时间】:2022-08-16 22:31:46
【问题描述】:
您必须实现满足以下要求的功能:
- 返回:包含指定字符串的 10 个产品名称。 如果有多个同名产品,则生产者名称以\" - \"的格式添加到产品名称中, 否则只返回 \"\"。 */
func listProductsByName(searchString: String) -> Set<String>
您不能使用错误处理,所以我想用默认数据填充 Set,但这个解决方案不起作用。实现此功能的最佳方法是什么?
func listProductsByName(searchString: String) -> Set<String> {
var searchProducts = Set<String>()
for product in products {
if product.name.contains(searchString) {
if !searchProducts.contains(product.name){
searchProducts.insert(product.name)}
else { searchProducts.insert(product.name + \" - \" + product.producer)}
}
if searchProducts.count == 10 {
break
}
}
if searchProducts.count < 10 {
var emptyElement = 0
print(\"Найдено меньше 10 товаров: \\(searchProducts)\")
repeat {
searchProducts.insert(\"Пустой элемент № \\(emptyElement)\")
emptyElement += 1
} while searchProducts.count < 10
}
return searchProducts
}