您的位置:首页 > 移动开发 > Swift

swift-函数02-函数返回值

2016-02-23 15:34 399 查看
import UIKit

class ViewController:
UIViewController {

override func viewDidLoad() {

super.viewDidLoad()

/**

使用元组(tuple)类型组合多个值为一个复合值作为函数的返回值

需要注意的是,在返回值中并不需要对元组成员进行命名,因为它们的名称已经存在了(就是变量名)

*/

func count(word:String)->(aCount:Int,bCount:Int,cCount:Int){

var a = 0,b =
0, c = 0

for cha in word.characters{

switch cha {

case "a":

a++

case "b":

b++

case "c":

c++

default:

continue

}

}

return (a,b,c)

}

let string1 =
"Dispose of any resources that can be recreated"

print("\(string1) has
\(count(string1).aCount)个a
\(count(string1).bCount)个b
\(count(string1).cCount)个c")

/**

以上所有的函数都给它们的参数定义了参数名称

这些参数只能在函数体中使用,不能在函数调用时使用。

这种类型的参数被称作局部参数(local parameter name),因为它们只能在函数体中使用

函数调用时,参数名是非常有用的,因为这些参数名说明实参的用途是什么。

如果你希望函数的使用者在调用函数时提供参数名字,

那就需要给每个参数(除了局部参数)外再定义一个外部参数名。

外部参数名写在局部参数名之前,用空格分开

如果函数提供了外部参数名,那么函数在被调用时,必须使用外部参数名

*/

func join(string s1 :String,string s2 :String,withJoinerString joner:String)->String{

return s1 + joner + s2

}

print(join(string:
"hello", string: "Sam!", withJoinerString:
","))

func and(firstName name1 :String,secondName name2:String )->String{

return name1 +
"and " + name2

}

print(and(firstName:
"Jenny ", secondName:
"Denny"))

/**

现在,使用这些外部参数名调用函数,这样会更清晰:

如果函数参数的意图不明显,考虑使用外部参数名;否则,就不需要使用外部参数名。

如果需要提供外部参数名,而局部参数名的定义已经非常明确了,那么你不需要写两次这个参数名。

这说明这个参数名既作为局部参数名也作为外部参数名。

*/

func ifcontainsCharacter(string string:String,characterToFind:Character)->Bool{

for cha in string.characters {

if cha == characterToFind {

return true

}

}

return
false

}

print(ifcontainsCharacter(string:
"dispose", characterToFind:
"a"))

func plus(firstValue a:Int,secondValue b:Int)->Int{

return a + b

}

print(plus(firstValue:
3, secondValue: 4))

/**

当我们想定义具有多个数量参数的函数,
那么我们可以声明成员为 “可变参数”
的参数。

参数可以被指定为可变参数由(...)的参数名称之后。

*/

func vari<a>(members:a...){

for i in members {

print(i)

}

}

vari(3,4,7)

vari(2.3,4,1,"asd")

vari("apple","pich","tree")

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: