我想检查数组的元素是否是Swift中UILabel的子类:
import UIKit
var u1 = UILabel()
u1.text="hello"
var u2 = UIView(frame: CGRectMake(0, 0, 200, 20))
var u3 = UITableView(frame: CGRectMake(0, 20, 200, 80))
var myArray = [u1, u2, u3]
var onlyUILabels = myArray.filter({"what to put here?"})
Run Code Online (Sandbox Code Playgroud)
没有桥接到目标c.
在Swift中,您可以使用范围运算符获取一个数组,如下所示:
let list: String[] = ["first", "middle", "last"]
let cdr = list[1..list.endIndex]
assert(cdr == ["middle", "last"])
Run Code Online (Sandbox Code Playgroud)
我试图在一个带有String[]参数的递归函数中做同样的事情,但没有任何运气:
func last(xs: String[]) -> String? {
switch xs {
case let (singleItemList) where singleItemList.endIndex == 1:
return singleItemList[0]
case let(multiItemList) where multiItemList.endIndex > 1:
let cdr: String[] = multiItemList[1..multiItemList.endIndex] // compilation error!
return last(cdr)
default:
return nil // empty list
}
}
last(["first", "middle", "last"])
last(["last"])
last([])
Run Code Online (Sandbox Code Playgroud)
中间案例语句不编译.它失败并出现此错误:
Playground execution failed: error: <REPL>:14:29: error: could not find an overload for 'subscript' …Run Code Online (Sandbox Code Playgroud)