swift-函数03-函数默认参数

import UIKit


class ViewController: UIViewController {

  

  override func viewDidLoad() {

    super.viewDidLoad()

    

    /**

     定义函数的时候可以为每个参数定义默认值,这样调用这个函数时可以略去这个参数。

     

     将带有默认值的参数放在函数参数列表的最后。

     这样可以保证在调用函数时,非默认参数的顺序是一致的。

     

     下例是另一个版本的 join 函数,其中 joiner 参数有了默认值:

     */

    func join(string s1:String,toString s2:String = "apple",

      withJoiner joiner:String = " ") ->String{

        

        return s1 + joiner + s2

        

    }

    /**

    如果joiner被赋值,函数使用这个值连接两个字符串

    */

    print(join(string: "hello", toString: "Sam", withJoiner: "-"))

    

    /**

    如果joiner没有被赋值,函数使用默认的" "来连接两个字符串

    */

    print(join(string: "hello", toString: "Danny"))

    

    print(join(string: "banana"));

    

    print(join(string: "hello", toString: "asd"))

    

    func plusString(s1:String,s2:String,plusString:String = " ")->String{

      

      return s1 + plusString + s2

    }

    print(plusString("double", s2: "kill"))

    

    print(plusString("tripple", s2: "kill", plusString: "---"))

    

    /**

     函数参数默认是常量。

     在函数体内是不可以修改的,

     所以,试图在函数体中更改参数值将会导致编译错误。

     但是,有时候,传入参数的变量值有副本将是很有用的。

     指定一个或多个参数为变量参数,来避免在函数中定义新的变量。

     变量参数不是常量,在函数体中,它是可修改副本。

     通过在参数名前加关键字 var 来定义变量参数:

     这样 我们就可以在函数体内来修改我们的参数

     对变量参数的修改在函数调用结束后就结束了,对于函数体外是不可见的。

     变量参数的生命周期在函数调用过程中

     */

    func morning(var time:String,var name:String,joiner:String)->String{

      print(time)

      time = "good afternoon"

      name = "Sam"

      return time + joiner + name

      

    }

    print(morning("good morning", name: "Jenny", joiner: "!"))

    

  }


}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值