gpt4 book ai didi

Swift array.map - 无法调用 'map'

转载 作者:行者123 更新时间:2023-11-30 10:13:41 25 4
gpt4 key购买 nike

我在 xCode 6.4 中使用以下代码将数组内的字符串拆分为数组:

func getData() -> [String]
{
let data = navData

// navData is like:
// A|xxx|xxx|xxx
// R|ccc|ccc|ccc
// N|ccc|ccc|ccc
// N|ccc|ccc|ccc

return split(data) { $0 == "\n" }
}

let data:[String] = getData()

func search(query:(String, Int)) -> [String]
{
let recs:[String] = data.filter { $0.hasPrefix(query.0) }
var cols: [String] = recs.map { split( recs ) { $0 == "|" } }
}

func searchQueries() -> [(String, Int)]
{
return [("N", 1)] //key, column index
}


for q:(String, Int) in searchQueries()
{
var results:[String] = search(q)
for x in results
{
result = results[0]
}
}

它以前可以工作,但我猜 swift 在 1.2 中发生了变化,现在出现以下错误:

Cannot invoke 'map' with an argument list of type '(() -> _)'

有什么建议吗?

谢谢!

最佳答案

发现在 Swift 2 中你必须使用其 characters 属性来分割字符串后,我在 Playground 中完成了这项工作:

let recs = ["col1|col2|col3", "1|2|3"]
let cols = recs.map {
split($0.characters) { $0 == "|" }.map {String($0)}
}
cols.first // ["col1", "col2", "col3"]
cols.last // ["1", "2", "3"]

请注意,在 Swift 2 beta 2 中,您还可以在末尾使用 {String.init}

要在 Swift 1.2 中实现此功能,请删除 .characters

关于Swift array.map - 无法调用 'map',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31466008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com