美文网首页
Swift3.x - 函数

Swift3.x - 函数

作者: ibabyblue | 来源:发表于2017-03-17 15:20 被阅读17次

    函数介绍

    • 函数相当于OC中的方法
    • 函数的格式:
    func 函数名(参数) -> 返回值类型{
            代码块
            return 返回值
    }
    
    • func 为关键字,多个参数之间可以使用逗号隔开,当然无参数也是可以的。
    • 使用返回箭头“->”表示指向返回值类型
    • 如果函数没有返回值,返回值为Void,并且“-> 返回值类型”部分可以省略。

    常见参数类型

    • 无参数无返回值
    func animalName() -> Void{
          print("cat!")
    }
    animalName()
    //结果:cat!
    //下面写法等价于上述写法
    func animalName(){
      print("cat!")
    }
    animalName()
    
    • 无参数有返回值
    func animalName() -> String{
          return "cat!"
    }
    animalName()
    //结果:cat!
    
    • 有参数无返回值
    func animalName(name: String) -> Void{
          print("I Have A \(name)")
    }
    animalName(name: "Dog")
    //结果:I Have A Dog
    
    • 有参数有返回值
    func animalName(name: String) -> String{
          return "I Have A \(name)"
    }
    animalName(name: "Dog")
    //结果:I Have A Dog
    
    • 多参数函数
    func animalName(name1: String, name2: String){
          print(name1 + " And " + name2)
    }
    animalName(name1: "dog", name2: "cat")
    //结果:dog And cat
    //在Swift3.0之前,调用函数时,默认第一个参数是不显示参数名的!Swift3.0之后默认是显示的。
    
    • 忽略标签函数
        //忽略标签函数,"_"代表忽略函数参数标签,调用时如下:
        func animalName(_ name1: String, name2: String){
            print(name1 + " And " + name2)
        }
        animalName("dog", name2: "cat")
        //注意:"_"与参数之间是存在空格的!
      
    • 默认参数函数
    func drinkWater(waterName: String = "绿茶") -> String{
        return "我想喝" + waterName
    }
    drinkWater()
    //结果:我想喝绿茶
    drinkWater(waterName: "奶茶")
    //结果:我想喝奶茶
    
    • 可变参数函数
      一个可变参数(variadic parameter)可以接受零个或多个值。函数调用时,你可以用可变参数来指定函数参数可以被传入不确定数量的输入值。通过在变量类型名后面加入(...)的方式来定义可变参数

        func sumNumber(num: Int...) -> Int{
           var result = 0
            for n in num {
                result += n
            }
            return result
        }
        sumNumber(num: 10,20,30)
        //结果:60
      
    • 输入输出函数
      如果你想要一个函数可以修改参数的值,并且想要在这些修改在函数调用结束后仍然存在,那么就应该把这个参数定义为输入输出参数 !

      var m = 10
      var n = 20
      
      func swapNum(m: inout Int,n: inout Int){
          let temp = m
          m = n
          n = temp
      }
      swapNum(m: &m, n: &n)
      print("m:\(m) n:\(n)")
      

    //结果:m:20 n:10
    //注意:Swift3.0中取消了修饰函数参数的"var"关键字,在Swift3.0之前函数参数可以使用"var"关键字修饰,inout关键字是在参数标签前面,而不是在参数类型前面的。like this:
    //func swapNum(var m: Int, var n: Int){
    // let temp = m
    // m = n
    // n = temp
    //}
    //func swapNum(inout m: Int, inout n: Int){
    // let temp = m
    // m = n
    // n = temp
    //}

    Zeb

    相关文章

      网友评论

          本文标题:Swift3.x - 函数

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