如何在Swift中编写泛型数字

时间:2015-10-14 16:33:14

标签: swift numeric

我试图在Swift中编写一些通用的数字代码。这是一个例子:

func linstep<X>(lambda: X, a: X, b: X) -> X {
    return (X(1)-lambda)*a+lambda*b
}

结果为'X' cannot be constructed because it has no accessible initializers。我需要确保1可以转换为X.

所以我尝试了这个变种:

func linstep<X: IntegerLiteralConvertible>(lambda: X, a: X, b: X) -> X {
    return (X(integerLiteral: 1)-lambda)*a+lambda*b
}

但那也失败了。

我应该如何编写我的功能?

(我知道线性插值可以代数重新排列,以消除使用1.但这不是我的问题。)

0 个答案:

没有答案