我目前正在使用Apple的Swift编程手册,并将函数类型作为参数类型。
以通常的方式,
func add(one : Int , _ two:Int) ->Int
{
return one+two
}
func multiply(one : Int ,_ two : Int) ->Int
{
return one*two
}
func subtract(one : Int , _ two :Int) ->Int
{
return one-two
}
add(1, 2)
subtract( 1 , 2)
multiply(1 , 2)
使用函数类型作为参数
func add(one : Int , _ two:Int) ->Int
{
return one+two
}
func multiply(one : Int ,_ two : Int) ->Int
{
return one*two
}
func subtract(one : Int , _ two :Int) ->Int
{
return one-two
}
func basic(result : (Int , Int) ->Int,_ one : Int , _ two : Int)
{
result(one,two)
}
basic(add, 1, 2)
basic(multiply, 2, 3)
因此,从上面的代码可以清楚地看到,我们正在编写额外的函数basic()
和额外的代码行,这些代码在本例中没有用,并且使它变得复杂。最好不要使用函数类型作为参数类型。
那么,是否有任何利用该功能的例子?
答案 0 :(得分:1)
如果你看一下Swift的标准库,你会发现很多方法都像Set rSession = CreateObject("Redemption.RDOSession")
MsgBox rSession.Profiles.DefaultProfileName
那样定义map
。
Array
接受一个函数,该函数将数组的元素转换为具有新类型的新数组。
它也是一个通用函数,但为了保持简单,我使用映射map
数组的函数:
Int
因此,它主要用于库,您可以提供具有更广泛使用范围的API。