Swift语法基础: 20 - Swift的定义和调用函数, 函数形参名

前端之家收集整理的这篇文章主要介绍了Swift语法基础: 20 - Swift的定义和调用函数, 函数形参名前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

不知道不觉,我们的Swift基础语法已经说了四分之一了,下面让我们继续来看看:


1.定义和调用函数

在我们的Swift中,也有定义函数调用函数方法,和OC中的形式不太一样,但本质都是相同的,下面让我们来看看例子:

func sayHello(personName: String) -> String {
    let greeting = "Hello," + personName + "!"
    return greeting
}

var a = sayHello("xiaoming")

println(a)
// 打印出来的结果: Hello,xiaoming!

PS: 在例子中的func关键字是声明函数必须得加上的,sayHello是函数名,(personName: String)说明函数里有一个参数名叫做personName,它的类型是String类型,->String的意思是指该函数返回的类型是一个String类型,而声明的变量 a 就是用来调用sayHello该方法的,而括号里所传入的就是该函数的参数内容.


2.多输入形参

在Swift中定义的函数同样是支持多形参输入,比如:

func halfOpenRangeLength(start: Int,end: Int) -> Int {
    return end - start
}
println(halfOpenRangeLength(1,10)) // 打印出来的结果: 9

PS: 在这个函数里,有两个形参,分别都是Int类型.


3.无形参数

同样的,和OC一样,Swift也允许函数没有形参,比如:

func sayHelloWorld() -> String {
    return "hello,world"
}
println(sayHelloWorld())
// 打印出来的结果: hello,world

4.无返回值函数

在Swift中,同样允许函数没有返回值,比如:

func sayGoodbye(personName: String) {
    println("Goodbye,\(personName)!")
}
sayGoodbye("Dave")
// 打印出来的结果: Goodbye,Dave

5.多返回值函数

在Swift中,我们可以声明多个类型的返回值,元组就是一个最好的例子了,比如:

func count(string: String) -> (vowels: Int,consonants: Int,others: Int) {
    var vowels = 0,consonants = 0,others = 0
    for character in string {
    switch String(character).lowercaseString {
        case "a","e","i","o","u":
            ++vowels
        case "b","c","d","f","g","h","j","k","l","m","n","p","q","r","s","t","v","w","x","y","z":
            ++consonants
        default:
            ++others
        }
    }
    return (vowels,consonants,others)
}

let total = count("some arbitrary string!")
println("\(total.vowels) vowels and \(total.consonants) consonants,others is \(total.others).")
// 打印出来的结果: 6 vowels and 13 consonants,others is 3.

6.函数形参名

在OC或者Swift中,我们都会给形参设定一个形参名,比如:

func someFunction(parameterName: Int) { }

PS: 形参名为someFunction.


7.外部形参名

除了这种方法定义形参名之外,还有另一种方式,就是外部形参名:

func someFunction(externalParameterName localParameterName: Int) {
    println(localParameterName)
}

var a: () = someFunction(externalParameterName: 10)
// 打印出来的结果: 10

PS: 这个就和我们在OC中定义的形参类似,但书写格式必须得以空格隔开,“( 空格 )”.


8.外部参数名称速记

外部参数名称还有另一种快速记住的方法,那就是在每个外部参数名称前加个 “( # )” 号,比如:

func containsCharacter(#string: String,#characterToFind: Character) -> Bool {
    for character in string {
        if character == characterToFind {
            return true
        }
    }
    return false
}

var a = containsCharacter(string: "abcdefg",characterToFind: "a")
println(a) // 打印出来的结果: true

这样子我们就不需要写两个形参名,可以提高我们开发效率.


9.默认形参值

func join(string s1: String,toString s2: String,withJoiner joiner: String = " ") -> String {
    return s1 + joiner + s2
}

var a = join(string: "Hello",toString: "World",withJoiner: " - ")
println(a)
// 打印出来的结果: Hello - World

PS: 这是我们自己设定的withJoiner函数内容,所以使得两个字符串的拼接中间会有 “( -) ” 该符号,但如果我们不设定的话,就会默认我们声明时用的 “( 空格 )”.

比如:

func join(string s1: String,toString: "World")
println(a)
// 打印出来的结果:Hello World

10.有默认值的外部形参名

还有一个例子,就是有默认值的外部形参名,下面是我们定义的:

func join(s1: String,s2: String,joiner: String = " ") -> String {
    return s1 + joiner + s2
}

var a = join("Hello","World",joiner: " - ")
println(a)
// 打印出来的结果: Hello - World

下面是默认的:

func join(s1: String,"World")
println(a)
// 打印出来的结果: Hello World

和我们前面讲解外部形参类似,只是添加了一个默认返回值是 “( 空格 )”的参数.


好了,这次我们就讲到这里,下次我们继续~~~

猜你在找的Swift相关文章