Java里面的函数和方法分的不是那么清,统一叫方法,因为Java里面所有的方法必须写在类中,Swift则不然,可以不写在类,被单独放在外面,这也许是Swift对函数和方法的区分吧。Java的方法和Swift的函数大体上差不多,但是灵活很多。下面我列出Swift函数的主要特点,并指出与Java的不同。
函数的定义与调用
当你定义一个函数时,你可以定义一个或多个有名字和类型的值,作为函数的输入(称为参数,parameters),也可以定义某种类型的值作为函数执行结束的输出(称为返回类型,return type)。
func sayHello(personName: String) -> String {
let greeting = "Hello, " + personName + "!"
return greeting
}
调用:
print(sayHello("Anna"))
// prints "Hello, Anna!"
print(sayHello("Brian"))
// prints "Hello, Brian!"
我们看Swift定义的函数用关键字func,参数定义的方式,放回的类型,跟Java是不同的,但也只是语法的不同,我们使用的方式是一样。
函数的参数
这点Swift跟Java有比较大的不同,Swift有内部和外部的参数名,默认情况下,外部参数名和内部参数名是一样,在调用函数时,第一个参数名可以省略,其他的参数名则不能省略,如果指定了单独的外部参数名则都不能省略。
Swift还对参数定义的默认的值。这些在Java中都是不存在的。还可以给参数前加上inout来改变外部的变量,在Java中,则必须使用引用来实现。
函数类型(Function Types)
Swift中可以吧函数作为一个普通的类型来使用,Java中是不行的,Java可以使用接口来实现类似函数类型的功能。