我可以在 Swift 中使用运算符作为默认函数参数吗?

Posted

技术标签:

【中文标题】我可以在 Swift 中使用运算符作为默认函数参数吗?【英文标题】:Can I use an operator as default function argument in Swift? 【发布时间】:2018-01-21 22:25:03 【问题描述】:

我正在尝试使用运算符 > 作为默认函数参数:

Playground execution failed: error: StackSorting.playground:27:63: 
error: expected expression after unary operator
func sort<T>(..., compare: (T, T) -> Bool = >) where T: Comparable  
                                            ^

我解决了,但是...有人知道更短的方法吗?

func sort<T>(..., compare: (T, T) -> Bool =  $0 > $1 ) where T: Comparable  

【问题讨论】:

【参考方案1】:

您可以使用运算符作为参数的默认值, 您只需将其括在括号中:

func sort<T>(..., compare: (T, T) -> Bool = (>)) where T: Comparable  

【讨论】:

以上是关于我可以在 Swift 中使用运算符作为默认函数参数吗?的主要内容,如果未能解决你的问题,请参考以下文章

Swift语法注意点

Swift中什么时候用变量参数inout参数

在 swift 中使用协议作为数组类型和函数参数

在swift中使用类类型变量作为函数参数[重复]

Swift - 在具有可选参数的泛型函数中以 Nil 作为参数

Swift一些语法