swift函数_11_函数的嵌套使用

//: Playground - noun: a place where people can play

import UIKit

//---函数参数名----//

//1.局部参数名:在函数的内部使用-->形参名
//同一个函数的局部参数名不能相同
func sum(firstNum:Int, secondNum:Int) -> Int {
    
    return firstNum + secondNum
}

sum(1, secondNum: 2)

//2.外部参数名
func rectangleArea(W Double, H height:Double) -> Double {
    
    return width * height
}
//如果指定了外部参数名,则调用函数时要使用外部参数名
rectangleArea(W:17.4, H:20.1)

//3.局部参数名和外部参数名最好不要重名,可以用_代替一个明确的参数名
func sendQQ(fromName from : String, _ to : String) -> String {
    return "(from)给(to)发送了条QQ信息"
}

sendQQ(fromName:"Kathy", "Tom")


//4.函数带默认参数:使调用函数更灵活,如果传值没使用传递的值,如果没有实参,则使用默认值
func makeCoffee(type : String = "cuppcinno") -> String {
    
    return "制作了一杯(type)咖啡"
}

makeCoffee()
makeCoffee("NestCafe")

//如果一个函数有多个参数,则带默认值的参数一般放在最后面
func studentInformation(stuNo no : String, stuName name : String, stuAge age : Int = 15) -> String {
    
    return "information:no((no)),name((name)),age((age)))"
    

}

studentInformation(stuNo: "1000", stuName: "kathy")
//: Playground - noun: a place where people can play

import UIKit

//---函数参数名----//

//1.局部参数名:在函数的内部使用-->形参名
//同一个函数的局部参数名不能相同
func sum(firstNum:Int, secondNum:Int) -> Int {
    
    return firstNum + secondNum
}

sum(1, secondNum: 2)

//2.外部参数名
func rectangleArea(W Double, H height:Double) -> Double {
    
    return width * height
}
//如果指定了外部参数名,则调用函数时要使用外部参数名
rectangleArea(W:17.4, H:20.1)

//3.局部参数名和外部参数名最好不要重名,可以用_代替一个明确的参数名
func sendQQ(fromName from : String, _ to : String) -> String {
    return "(from)给(to)发送了条QQ信息"
}

sendQQ(fromName:"Kathy", "Tom")


//4.函数带默认参数:使调用函数更灵活,如果传值没使用传递的值,如果没有实参,则使用默认值
func makeCoffee(type : String = "cuppcinno") -> String {
    
    return "制作了一杯(type)咖啡"
}

makeCoffee()
makeCoffee("NestCafe")

//如果一个函数有多个参数,则带默认值的参数一般放在最后面
func studentInformation(stuNo no : String, stuName name : String, stuAge age : Int = 15) -> String {
    
    return "information:no((no)),name((name)),age((age)))"
    
    

}

studentInformation(stuNo: "1000", stuName: "kathy")

//5.可变参数:Swift可以接收不确定数量的输入参数,这些参数必须有相同的类型
//func 函数名(可变参数名:可变参数类型...)->返回值 {}
func addNumbers(Numbers:Double...) -> Double {
    var total : Double = 0
    
    for number in Numbers {
        
        total += number
    }
    
    return total
    
    
}

//实参的个数是可变的
addNumbers()
addNumbers(10.5)
addNumbers(10.0,34.5,23.6)
//一个函数中最多只能有一个可变参数,可变参数放在参数列表的最后

//6.常量参数和变量参数
//函数的参数默认为常量,如果想在函数体中改变参数的值,要将其设置为变量
func changeAge(var age : Int) -> Int {
    
    age += 5
    
    return age
}

var myAge = 20
changeAge(myAge)
print(myAge)

//7.函数的参数传递
//两种形式:值传递(值类型)引用传递(引用类型)
//值传递代表建立一个实参的副本,形参的改变不会影响到实参
//引用传递就是传递变量的地址,函数中对形参的改变实际就是对实参的改变

func swap(inout a : Int, inout b : Int) {
    
    let temp = a
    a = b
    b = temp
}

var one = 1, two = 2

swap(&one, &two)
print(one)
print(two)

//inout参数实现了引用传递,类似于C语言中的指针
//inout参数不能是可变参数,也不能有默认值,不能再被var,let所标记
时光见证了成长,还很无知,我想一点点幼稚转为有知!
原文地址:https://www.cnblogs.com/foreveriOS/p/5559092.html