func testFunc(){
println("...testFunc...")
// let str = sayHi("caicai")
let str2 = sayHi2("caicai", age:23)//2、 此处必须要有声明标签
println(str2)
let str4 = sayHi4()//4、 此处返回的是一个元组
println(str4)
//5、 此处给函数的参数起个对外参数名,
// 对外参数名是用来描述参数
let str5 = sayHi5(who: "caicai", howOld: 23)
println(str5)
let str6 = sayHi6(name: "caicai", age: 23)
println(str6)
}
// 关于Swift中的函数
//1、 函数定义,单个参数,返回值
func sayHi(name:String) -> String {
var str = "你好\(name)"
return str
}
//2、 传入多个参数,返回值
func sayHi2(name:String, age:Int) -> String {
var str = "你好\(name),我今年\(age)"
return str
}
//3、 无参数,无返回值
func sayHi3(){
let str = "我没有参数,也无返回值。"
println(str)
}
//4、 返回多个值的函数
func sayHi4() -> (name:String, age:Int){
return ("caicai",23)
}
//5、 传入多个参数,返回值
func sayHi5(who name:String, howOld age:Int) -> String {
var str = "你好\(name),我今年\(age)"
return str
}
//6、 传入多个参数,返回值
// func sayHi5(name name:String, age age:Int) -> String {
// var str = "你好\(name),我今年\(age)"
// return str
// }
//6.1 上面的函数等同于下面的
func sayHi6(#name:String, age:Int) -> String {
var str = "你好\(name),我今年\(age)"
return str
}
//7、 Swift函数中,参数默认是常量
// 如果要改变参数的值,就必须在定义函数的时候加上关键字var
func add(var age:Int) {
age += 1
println(age)
}
//8、 同时改变函数内外age值
var age = 23
func changeAge(inout age:Int){
age = 35
}
// changeAge(&age)传入引用
// 会发现实参age和形参age值都被改变了