// 10.函数
// a.函数的定义--
//a.1无参(无返回值,有返回值)
//a.2有参(无返回值,有返回值)
//a.3有多个返回值
//a.1
//定义函数
func function_01()
{
print("无参 无返回值")
}
function_01()
//a.2
func function_02() ->String
{
print("无参 有返回值")
return "返回值_02"
}
var result_02 = function_02()
print(result_02)
//a.3
func function_03(age age: Int,name: String)
{
print("参数1:\(age) 参数2: \(name)")
}
function_03(age: 22,name: "不知打")
//a.4
func function_04(age age: Int,name: String) ->String
{
print("参数1:\(age) 参数2: \(name)")
return "返回值_04"
}
var result_04 = function_04(age: 12,27)">你知道的")
print("返回值_04: \(result_04)")
// a.5 返回多个参数,需要借助 元组
func function_05() ->(Int,String,Double)
{
return (12,"明明白白我的新",3.14159)
}
var result_05 = function_05()
print("多个返回值: \(result_05)")
//函数 注意的第二个点 :外部参数名,内部参数名,其实就跟以前的实参、形参 类似。
//默认情况下,第一个参数的外部参数名是关闭的,其他的都是可见的。
//函数 注意的第三个点:默认情况下,参数是let 常量,如果需要有所访问,则改为var
func function_06(var name: String,var age : Int)
{
name = "夏洛"
age = 17
print("name: \(name) age : \(age)")
}
function_06("如花",age: 22)
//函数 注意的第四点:OC中如果想通过改变形参的值来影响实参的值,我们的做法是传入实参的地址,然后根据地址修改值。
//但是swift中就特别简单了,只需要给内部参数名 加一个关键字 inout 修饰就可以做到这点了,但是其实内部实现本质是跟OC一样的。只是形式不一样了,只怪swift大师封装的太好。--真的是超级方便。
func function_changeValue(inout name:String)
{
//通过这里,修改了外面的值。就像远程控制一样。有没有。
name = "给你一个什么名字好叻"
}
var name_prevIoUs = "张天启"
function_changeValue(&name_prevIoUs)
print(name_prevIoUs)
//函数 注意第五点:OC中是杜绝 函数嵌套定义的,但是swift却大胆的让你想怎么定义就怎么定义,只不过注意一点就是,函数的生命周期。
//只不过,目前项目中,好想并没有实际应用场景,以后遇到了,再来补充。
func function_001()
{
func function_002()
{
func function_003()
{
}
}
}
原文链接:https://www.f2er.com/swift/325718.html