美文网首页
4.1函数与闭包

4.1函数与闭包

作者: LucXion | 来源:发表于2020-05-22 14:04 被阅读0次

    参数和返回值决定函数的类型。参数数量和类型完全相同,同时返回值类型也相同的函数为同类型函数

    // 函数的声明与实现
    func mathSum(num1:Int,num2:Int)->Int{
        return num1 + num2
    }
    var a = mathSum(num1: 5, num2: 6)
    // 和OC不同,返回值可以是多个对象,返回值可以是元祖类型,甚至是可选元祖类型
    func checkID(id:Int)->(succese:Bool,msg:String)?{
        
        guard id == 10086 else {
            return nil
        }
        return (true,"checkIn")
    }
    if let temp = checkID(id: 10086) {
        if temp.succese {
            print(temp.msg)
        }
    }
    

    函数名:Swift函数命名综合了OC和JAVA的命名优缺点,在简洁与
    实用间找到了平衡点

    // 只命名了内部函数名,因此默认内部函数名与外部函数名相同
    func Sum(parama1:Int,parama2:Int,parama3:Int)->Int{
        return parama1 + parama2 + parama3;
    }
    var sumNum = Sum(parama1: 1, parama2: 2, parama3: 3)
    // 分别命名了外部参数名和内部参数名,函数作用域内实用内部函数名,外部调用实用外部函数名,重载时作用会更大
    func Sum(out1 parama1:Int,out2 parama2:Int,out3 parama3:Int)->Int{
        return parama1 + parama2 + parama3;
    }
    var sum = Sum(out1: 1, out2: 2, out3: 3)
    // 使用 _ 来忽略函数名
    func Sum(_ parama1:Int,out2 parama2:Int,out3 parama3:Int)->Int{
        return parama1 + parama2 + parama3;
    }
    var sum = Sum(1, out2: 2, out3: 3)
    

    可以给函数设置默认值,设置了默认值的函数调用时有两种调用方式,可以略过含默认值的参数,但不能改变参数顺序
    编写参数个数不定的函数

    // 一个函数只有包含一个可变参数
    func Sum(parama1:String...)->String{
        
        var temp:String = ""
        for item in parama1 {
            temp.append(item)
        }
        return temp
    }
    var sum = Sum(parama1: "a","a","a","a","a","a","a","a","a")
    inout
    //  inout类型
    // 值类型(基本数据类型、枚举、结构体)作为参数传递时会将原值复制为一份常量传递且不可修改,这个时候就需要用到 inout类型
    func Sum(num:inout Int){
        num += 1;
    }
    

    相关文章

      网友评论

          本文标题:4.1函数与闭包

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