Swift 随记 01 (函数)

-函数:

        ** 函数的参数的注意事项:**

       
         1.忽略外部参数名
     如果开发者不想第二个及后续的参数设置参数名,可以使用下一个下划线 (_) 来代替一个明确的参数名。

     
   func sum(value:Int,_ value2:Int) -> Int {
    
        return value + value2
   }
      
     sum(value: 234, 343)
     

         2.为参数设置默认值
     开发者可以再函数体中为每个参数定义默认值(Deafult Values)。当默认值定义完后,调用这个函数时可以忽略这个参数。


    
    func printInt(Start:Int=0,end:Int=5) {
    
        for i in  Start ..< end {
    
           print(i)
         
          }
      }

      printInt()


      输出结果:
      0
      1
      2
      3
      4
    


          3.可变参数
    使用可变参数,可以是一个参数接受零个或多个指定类型的值。设定一个可变参数需要在参数类型名后添加 “...”。
    例:求几个数的平均值的功能。

    
func average(num:Double...){
    var total : Double = 0
    
    for i in num {
        total += i
    }
    
    print(total/Double(num.count))
}

average(num: 1,2,3,4,5,6)

average(num: 10,20,30)


输出结果:
3.5
20.0
    
  
            4.输入-输出参数
     如果开发者想用一个函数来修改参数的值,并且想让这些变化在函数调用后仍然有效。这时,需要定义输入-输入参数。他的定义是通过在参数名前加 inout 关键字。
     
     func 函数名(inout 参数名:数据类型, ......){
        ......  ......
     }

     输入-输出参数都有一个传递给函数的值,将函数修改后,再从函数返回来替换原来的值。
  
     函数(&参数,......)

     其中,参数前面加上 & 运算符。
     func swapTwoInt( num1: inout Int, num2: inout Int) {
        
          let temp = num1
          num1 = num2
          num2 = temp
        
      }

             var value1 = 6
        var value2 = 8
        print("交换前")
        print("value1 = \(value1)")
        print("value2 = \(value2)")
        print("交换后")
        swapTwoInt(num1: &value1,num2: &value2)
        



           **函数的返回值**
      
       1. 具有返回值
    
     func 函数名(参数列表)-> 返回值 {
  
        return 表达式
    }


      2. 具有多个返回值
   函数有多个返回值 这时候需要用到 元组类型 。
 例:
          func maxVaule(value1:Int,value2:Int,Value3:String,Value4:String) -> (Int,String) {
        
        var maxInt = 0
        var maxString : String
      
        // 判断哪个整数最大
        if value1<value2 {
            maxInt = value2
        }else{
            maxInt = value1
        }
        // 判断两个字符串哪个大
        if Value3<Value4 {
            maxString = Value4
        }else{
            maxString = Value3
        }
        return (maxInt,maxString)
        
    }

      print(maxVaule(value1: 5, value2: 1, Value3: "Hello", Value4: "Swifts"))

     输出:
    (5, "Swifts")   // 元组


          ** 函数类型**
   
    1. 使用函数类型作为参数

   例:
          // 两个数相加
    func add(a:Int,b:Int) -> Int {
        
        return a + b
        
    }
    // 两个数相乘
    func multiply(a:Int,b:Int) -> Int {
        
        return a * b
        
    }
    // 输出结果
    func printResult (fun:(Int,Int) -> Int, a:Int, b:Int){
        print(fun(a,b))
    }
   
          printResult(fun: add, a: 4, b: 5)
     
     输出 : 6


    2.使用函数类型作为返回值类型

     func 函数名(参数列表)-> 函数类型 {
         ....
     }


 
    ** 函数的嵌套 **
        1、 嵌套调用
   在函数里调用其他函数


       2、递归调用
   在调用函数的过程中调用了该函数本身。


转载于:https://my.oschina.net/u/2613046/blog/755904

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值