美文网首页
Swift 函数

Swift 函数

作者: BearClawr | 来源:发表于2018-03-16 16:56 被阅读0次

    函数

    函数是执行特定任务的一段代码,并指定了一个函数名,在需要的时候可以多次调用这个代码。

    函数的定义和调用

    Swift 使用 func 关键字来定义函数,具体格式如下:

    func 函数名(参数名1: 参数类型, 参数名2: 参数类型...)-> 返回值类型 {
        函数体
        return 返回值
    }
    

    注意:

    1. func:表示函数的关键字
    2. 函数名:表示函数的名称,用来简要地描述函数的功能
    3. 参数名:用于接收调用函数时传入的数据
    4. 参数类型:用来限定调用函数时传入参数的数据类型
    5. 返回值类型:用于限定函数返回值的数据类型

    有哪几种函数

    无参函数

    func sayHelloWorld() -> String {
        return "Hello World!"
    }
    

    多参函数

    func sayHelloWorld(name: String, alreadyGreeted: Bool) -> String {
        if alreadyGreeted {
            return "Hello again,\(name)"
        } else {
            return "Hello,\(name)"
        }
    }
    
    print(sayHelloWorld(name: "Tom", alreadyGreeted: true))
    

    无返回值函数

    func test1() {
        print ("嘻嘻")
    }
    
    func test2() -> Void {
        print ("嘻嘻")
    }
    
    func test3() -> () {
        print ("嘻嘻")
    }
    

    多返回值函数

    func count(string: String) -> (vowels: Int, consonants: Int, others: Int) 
    {
        var vowels = 0, consonants = 0, others = 0
        for character in string.characters {
            switch String(character).lowercased() {
                case "a","e","i","o","u":   // 元音
                    vowels += 1
                case "b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z" :
                    consonants += 1
                default:
                    others += 1
            }
        }
        return (vowels, consonants, others)
    }
    let total = count(string: "welcome to itcast")
    print("\(total.vowels)个元音字母和\(total.consonants)个辅音字母!")
    

    局部参数名和外部参数名

    局部参数名

    只能在函数本身的主体中使用,无法在调用时使用,这种参数类型名称称为局部参数名。

    func someFunction(firstParameterName: Int, secondParameterName: Int) 
    {
        // 函数体
    }
    

    外部参数名

    所谓外部参数名,是指参数名的前面再增加一个参数名。如果为参数指定了外部形参
    名,调用的时候就必须显式地使用,下面是带有外部参数名的基本格式:

    func 函数名(外部参数名1 参数名1: 参数类型,外部参数名2 参数名2: 参数类型...) -> 返回值类型 
    {
        函数体...
        return 返回值
    }
    

    函数参数的其他用法

    1. 默认参数值
    func sayHi(message: String, name: String = "小明") -> Void 
    {
        print("\(name),\(message)");
    }
    
    1. 可变参数
    func arithmeticMean(numbers: Double) -> Double {
        var total: Double = 0
        for number in numbers {
            total += number
        }
        return total / Double(numbers.count)
    }
    print(arithmeticMean(numbers: 1, 2, 3, 4, 5))
    
    1. In-Out(输入输出)参数:可以在函数内修改参数值,并且在函数外使用。
    func swapTwoInts(a: inout Int, b: inout Int) {
        let temporaayA = a
        a = b
        b = temporaayA
    }
    

    注意:inout 修饰的参数是不能有默认值的,也不能是有范围的参数集合,另外,一个参数一旦被 inout 修饰,就不能再被 let 修饰了。

    嵌套函数

    嵌套就是指写在函数里的函数。

    func calculate(opr: String) -> (Int, Int) -> Int {
        // 定义加法函数
        func add(a: Int, b: Int) -> Int {
            return a + b
        }
        
        // 定义减法函数
        func sub(a: Int, b: Int) -> Int {
            return a - b
        }
        
        var result: (Int, Int) -> Int 
        switch opr {
            case "+":
            result = add
            case "-":
            result = sub
            default:
            result = add
        }
        retrun result
    }
    

    相关文章

      网友评论

          本文标题:Swift 函数

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