我正在阅读一些关于swift函数式编程的书籍。当我看到有些书说swift中的函数是"一流的功能"我混淆了"一流"的含义。任何人都可以回答我或给我一些示例代码吗?
答案 0 :(得分:7)
函数是Swift中的一等公民,因为你可以将函数看作普通值。例如,你可以......
答案 1 :(得分:2)
它目前很时髦的术语。它只是意味着您可以拥有一个包含对函数的引用的变量。
它一直在编程;在C和Fortran中,你有指向函数的指针。这两种语言的典型用法是将比较函数传递给sort函数,以便sort函数可以对任何数据类型进行排序。
在某些语言中,例如Java,看起来你没有指向函数的指针,但你确实有指向接口的指针。因此,您使用compare方法定义Comparable接口,并将Comparable实例传递给您的排序。
没有什么新东西,只是令人困惑的熟悉概念的术语。大概是为了让这个功能听起来更加新颖和性感。
答案 2 :(得分:1)
请在this question中查看我的回答。我将再添加一个示例(请先检查该问题中的示例):
func operateMono( operand: String) -> (Double -> Double)?{
switch operand{
case "log10":
return log
case "log2":
return log2
case "sin":
return sin
case "cos":
return cos
default:
return nil
}
}
用法
var functionMono = operateMono("log10")
print ("log10 for 10 = \(functionMono!(10))")
functionMono = operateMono("log2")
print ("log2 for 10 = \(functionMono!(10))")
functionMono = operateMono("sin")
print ("sin 10 = \(functionMono!(10))")
functionMono = operateMono("cos")
print ("cos 10 = \(functionMono!(10))")