美文网首页
菜鸡学Swift3.0 10.函数

菜鸡学Swift3.0 10.函数

作者: 菜鸡 | 来源:发表于2016-10-12 17:46 被阅读7次

1. 函数的定义

func 函数名(参数)-> 返回值类型 { 函数体 }
函数名( 参数名:参数值 )
// 函数的定义 有返回值
func sayHelloTo (name: String?) -> String {
    return "Hello" + ( name ?? "Guest" )
}
var userName: String? = nil
sayHelloTo (name: userName)

// 函数的定义 无返回值
func hello () -> Void {
    print("hello")
}
hello( )

2. 函数外部参数名和内部参数名

func 函数名 (外部参数名 内部参数名:参数类型 , 外部参数名 内部参数名:类型) -> 返回类型 { 函数体 }
函数调用
函数名 (外部参数名:值 , 外部参数名: 值)
func mutipleOf (num1 a:Int , num2 b:Int) -> Int {
    return a*b
}
mutipleOf(num1: 2, num2: 2)

3. 默认参数值和可变参数值

默认参数值
func 函数名 ( 内部参数名:参数类型 = "默认参数值" 其他。。。)
func sayHelloTo (name: String , say: String = "Hello" , sex: String = "男") ->        String {
    return "\(name) , \(say) , \(sex)"
}
sayHelloTo(name: "Jack")
//Jack,Hello,男
可变参数值
func 函数名 ( 可变参数名:参数类型 ... ,其他。。。。 )
func sayHelloTo (names: String ... , say: String = "Hello" , sex: String = "男") {
    for name in names {
        print ("\(name),\(say),\(sex)")
    }
}
sayHelloTo(names: "A","B","C")
//A,Hello,男
//B,Hello,男
//C,Hello,男

4. inout 参数 按引用传参

按引用传参 (可以改变参数在内存里的值而不是按值传入产生一个拷贝)
函数名(参数名: &变量名, 参数名: &变量名)
func swapTwoInts ( a: inout Int , b: inout Int){
    //交换两个参数的值
    (a , b) = (b , a)
}
var x = 10
var y = 20
swapTwoInts(a: &x, b: &y)
x //20
y //10

5. 使用函数类型

函数型变量声明类型 --- var 函数名: ( 参数类型 , 参数类型 , ... ) -> 返回类型
func add (a: Int , b: Int) -> Int {
    return a + b
}
//函数型变量声明类型 (这里把函数当做变量用)
var addTwo:(Int,Int) -> Int = add
addTwo (2,3)
函数型变量的使用(把函数当做变量使用) (by: 函数变量名)
var arr = [12,33,21,55,78]
func isFirstNumber (a:Int , b:Int) -> Bool {
    return a > b
}
arr.sort(by: isFirstNumber) //[78, 55, 33, 21, 12]

6. 返回函数类型和函数嵌套

// 第一种计算方法
func Tweight1 ( weight: Int) -> Int {
    return 1 * weight
}
// 第二种计算方法
func Tweight2 ( weight: Int) -> Int {
    return 3 * weight
}

func fee ( price: Int , weight: Int) -> Int {
// 嵌套函数
// 判断使用哪一种计算方法 并且以函数作为返回值
    func choose ( weight: Int) -> (Int) -> Int {
        return  weight <= 10 ?  Tweight1 :  Tweight2
    }
// 把choose(参数名:参数值)赋值给 abc函数型变量
let abc = choose(weight: weight)
// 返回 choose已经判断用第一种计算方法赋值给abc函数变量,abc函数变量参数是3用第一种计算方式去计算,结果是3,加上 price * weight 结果6,最终相加结果是9
return (abc(weight) + price * weight)
}

fee (price: 2,weight: 3)

相关文章

网友评论

      本文标题:菜鸡学Swift3.0 10.函数

      本文链接:https://www.haomeiwen.com/subject/ohhvyttx.html