Swift array.map - 无法调用 'map'
Swift array.map - cannot invoke 'map'
我在 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) { [=13=] == "\n" }
}
let data:[String] = getData()
func search(query:(String, Int)) -> [String]
{
let recs:[String] = data.filter { [=13=].hasPrefix(query.0) }
var cols: [String] = recs.map { split( recs ) { [=13=] == "|" } }
}
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 两个中你必须使用其 characters
属性 拆分字符串后,我在操场上做了这个工作:
let recs = ["col1|col2|col3", "1|2|3"]
let cols = recs.map {
split([=10=].characters) { [=10=] == "|" }.map {String([=10=])}
}
cols.first // ["col1", "col2", "col3"]
cols.last // ["1", "2", "3"]
请注意,在 Swift 2 beta 2 中,您还可以在末尾使用 {String.init}
。
要在 Swift 1.2 中使用此功能,请删除 .characters
。
我在 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) { [=13=] == "\n" }
}
let data:[String] = getData()
func search(query:(String, Int)) -> [String]
{
let recs:[String] = data.filter { [=13=].hasPrefix(query.0) }
var cols: [String] = recs.map { split( recs ) { [=13=] == "|" } }
}
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 两个中你必须使用其 characters
属性 拆分字符串后,我在操场上做了这个工作:
let recs = ["col1|col2|col3", "1|2|3"]
let cols = recs.map {
split([=10=].characters) { [=10=] == "|" }.map {String([=10=])}
}
cols.first // ["col1", "col2", "col3"]
cols.last // ["1", "2", "3"]
请注意,在 Swift 2 beta 2 中,您还可以在末尾使用 {String.init}
。
要在 Swift 1.2 中使用此功能,请删除 .characters
。