给定类型为[Int]的函数参数;它可以被限制为不空吗?

时间:2016-10-29 21:42:26

标签: swift

请考虑以下事项:

func example(array: [Int]) {
    guard array.count > 0 else { return }

    // Do something
}

通过功能签名宣布限制会很好。是否可以约束参数?相当于:

的东西
func example(array: [Int] where array.count > 0) {
    // Do something
}

更进一步:让数组可选:

func example(array: [Int]?) {
    guard array == nil || array!.count > 0 else { return }

    // Do something
}

func example(array: [Int]? where array.count > 0) {
    // Do something
}

1 个答案:

答案 0 :(得分:1)

不,你不能有条件参数。你可以做的最好的就是你在第二个选项中有一个可选的,在你调用函数之前(或者在函数中可行)检查它是否为零。