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")
}
}
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")
}
}
相关文章推荐
- Swift中用正规表达式判断String是否是手机号码
- swift-函数01-函数初步认识
- swift-控制流程04-控制转移语句
- Swift真机调试时报错dyld: Library not loaded: @rpath/libswiftCore.dylib
- swift-控制流程03-switch
- swift-控制流程02-while循环
- swift Xcode新建playground报错
- swift-控制流程01-for循环
- Swift:如何判断一个对象是否是某个类(或其子类)的实例
- 【iOS】swift-文字宽度的计算
- 【iOS】swift-文字宽度的计算
- iOS 开发 -- Swift 语法篇 (二) 可选项
- swift-集合类型03-字典和数组
- swift-集合类型02-字典的基本操作
- Swift中文教程(十五) 析构
- Swift中文教程(十四) 初始化
- Swift中文教程(十三) 继承
- swift-集合类型01-数组的基本操作
- [Swift]基础
- Swift初体验(三)