Swift笔记<八>函数的基本使用

作者: 大基本功 | 来源:发表于2017-12-29 11:32 被阅读91次
    函数的介绍
    • 函数相当于OC的方法
    • 函数格式
      • func 函数名(参数列表) →返回值类型{代码块retuan 返回值}
      func add(num1:Int,num2:Int)→Int{
      return num1+num2
      }
      
      • 无参数无返回值
       // ():空的元祖
      func add()→Void{
      return
      }
      //或则
      func add()→(){
      return
      }
      //或则
      func add() {
      return
      }
      
      • 有参数无返回值
      func add(num:Int){
      return
      }
      
      • 无参数有返回值
       func add() →Int{
       return 100
       }
      
      • 有多个返回值的函数(返回元祖)
      func getPerson() →(name:String,age:Int){
      return("张三",3)
      }
      
    函数的使用注意
    • 外部参数和内部参数
      • 函数内部的参数即内部参数,外部的参数即外部参数
      func add( num1:Int , num2:Int){
      print(num1+num2)
      } 
      
      //外部忽略参数,修改外部参数
      //前面加另外参数即修改外部参数 ;加_即忽略
       func add( _ num1:Int , abc num2:Int){
       print(num1+num2)
       } 
      
    • 默认参数
      • 某些情况,如果没有传入具体的参数,可以使用默认参数
      • 如果使用默认值,那么函数的接受参数可以是必传参数和可传参数的任意组合
      • 应用 :接口升级保证接口的兼容性
      如果外界没有传递参数,那么取默认值
      func addNum(num1:Int,dis:Int =0)→Int{
      return num1+dis
      }
      
    • 可变参数
      • 格式 : 类型...
      • 函数内部把这个参数当做数组来处理,函数外部直接可以传递多个值
        func add(_ nums :Int...) → Int{
        var result = 0
        for num In nums{
        result += num
        }
        }
        add(1,2,3,4)
      
    • 在函数内部,默认接收到的参数被赋值给一个常量,如果想要改变需要在函数内部使用var修饰
     func change(num :Int){
     var num = num
     num = 3
    }
    let a =0
    change(num:a)
    
    • 指针的传递
      • 默认情况下函数的参数是值传递,如果想改变外面的变量,则需要传递变量的地址
      • 必须是变量,因为需要在内部改变其值
      • swift 提供的inout关键字可以实现
      func chang(num :inout Int){//指针(地址)的传递
       num = 3
     }
     var b = 0
      change(num:&b)
    
    • 函数的嵌套使用
      • 函数中包含函数,但是不推荐使用
      func text(){
               func text2(){
               }
      } 
    
    函数的类型
    • 函数类型: 参数类型和返回值类型
     func add(num:Int,num2:Int)→ Int{
     return num +num2
     }
     //函数类型为(Int,Int)→Int
     func jian(num:Int,num2:Int)→ Int{
     return num -num2
     }
    
    • 用途:可以作为另一个函数的参数/返回值
      //作为参数
      func exec(n1:Int,n2:Int,fun:(Int,Int) →Int){
      let result = fun(n1,n,2)
      print(result)
      }
      exec(n1:6,n2:8,fun:add)
      //作为返回值
      func getFunc(name:String) →(Int,Int) →Int{
         if name=="add"{
             return add
         }   
         return jian
      }
      
    • 编译器如何区分不同函数
      • 靠函数名称
      • 外部参数名称
      • 参数类型+返回值类型 = 函数类型
      func text(a:Int){
      }
      func text(b:Int){
      }
      //以上为两个不同函数,外部参数不同
      

    相关文章

      网友评论

        本文标题:Swift笔记<八>函数的基本使用

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