标签:
//---------------- 函数 ---------------------------
//func为函数名关键字
//一个参数
//func+函数名+(参数名:参数类型)-> 返回类型
func sayHello(personName: String) -> String {
let test = "hello," + personName + "!"
return test
}
println(sayHello("popo"))
//多个参数
//func+函数名+(参数名:参数类型, 参数名:参数类型)-> 返回类型
func sum(start: Int, end: Int) ->Int {
return start + end
}
println(sum(10, 12))
//没有参数
//func+函数名+()-> 返回类型
func sayHelloWorld() ->String {
return "hello world"
}
println(sayHelloWorld())
//没有返回值有参数
//func+函数名+(参数名:参数类型)
func sayGoodBye(personName: String) {
println("Goodbye,\(personName)!")
}
sayGoodBye("popo")
//多返回值函数
//func+函数名+(参数名:参数类型)-> (返回参数名:参数类型, 返回参数名:参数类型, 返回参数名:参数类型,)
//判断一个字符串不同字母的个数
func count(string: String) -> (a: Int, b: Int, c: Int) {
var a = 0, b = 0, c = 0
for character in string {
//将字符全部转换为小写
switch String(character).lowercaseString {
case "i", "l", "o", "v", "e", "y", "u":
++a
case "s", "b":
++b
default:
++c
}
}
return (a, b, c)
}
let test = count("i love you sb 001")
println(test)
println(test.a)
println(test.b)
println(test.c)
//一参多值
//func+函数名+(参数名:参数类型...) ->返回类型
//计算平均值
func arverage(numbers: Double...) -> Double {
var test: Double = 0
for number in numbers {
test += number
}
return test / Double(numbers.count)
}
println(arverage(3, 5, 7, 9))
//函数参数默认值为常量,可用var定义变量参数
//func+函数名+(var 参数名:参数类型, 参数名:参数类型, 参数名:参数类型) ->返回类型
//左侧填充足够的字符
func fill(var string: String, count: Int, pad:String) -> String {
for _ in 1...count { //依次循环填充
string = pad + string + pad//选择从左还是从右插入pad(string)
}
return string
}
let string7 = "hello"
let string8 = fill(string7, 3, "*");
println(string8)
//上面可变参数只能在函数内部进行,如果需要输入参数的同时修改参数并且修改参数的输出值则需要添加inout关键字表示 输入-输出参数
//func+函数名+(inout 参数名:参数类型, inout 参数名:参数类型)
//交换a、b的值
func exchange(inout a: Int, inout b: Int) {
let test = a
a = b
b = test
}
var exchangeA = 10
var exchangeB = 18
println(exchangeA - exchangeB)
//使用输入-输出参数 需要用&引入参数
exchange(&exchangeA, &exchangeB)
println(exchangeA - exchangeB)
标签:
原文地址:http://www.cnblogs.com/summerpopo/p/4625121.html