Swift中的Function


概述:在刚学习Swift的时候,我都是盲目的找资料,这里找一点那里找一点,没有统一的学习资料。正好这段时间公司没有什么事情做,领导又让我学习一下Swift编程,索性我就跟着Apple官方的推荐的《The Swift Programming Language》书籍来系统的学习一下Swift。也建议想学习Swift的同学认真跟着这本书去学习,因为这本书真的很不错!      我这里自己的总结都是在本书中学到的!

1、Defining and Calling Functions   定义和调用函数

func sayHello01(personName:String)->String{
   let greenting = "hello \(personName)"
   return greeting ;
}
print(sayHello01("张三"))
我之前学习过java、javascript,这和swift声明函数的方式有点相似,有时候容易就写成Javascript的函数声明了,不过多敲几遍就记住了,也不容易混淆。


</pre><p>2、Function whitout Parameters   没有参数的函数</p><pre name="code" class="objc">func sayHello02()->String{
<p class="p1"><span class="s1">   return</span><span class="s2"> </span><span class="s3">"Hello World!"</span></p>}

3、Function with Multiple Parameters  含有多个参数的函数

func sayhello03(personName:String,alreadyGreeted:Bool)->String{
    if alreadyGreeted{
       return "haved say Hello!"
    }else{
       return "Hello \(personName)!"
    }
}
sayhello02("张三", alreadyGreeted: false)
注意:在调用一个多参数的函数时,除了第一个不需要写形参外,后面的参数必须要写形参,否则,编译会报错!但是也有方法可以不需要写形参,继续往下看。


4、Function whitout Return Values 没有返回值的函数

func sayHello04(personName:String){
    print("Hello \(personName)!")
}
sayHello04("Jan")


5、Function with Multiple Return Values   多个返回值的函数

func minMax(array:[Int])->(min:Int,max:Int){
    var min = 0 ;
    var max = 0 ;
    for number in array{
        if number<min{
            min = number
        }
        if number > max {
            max = number
        }
    }
    return (min ,max)
}
var result = minMax([10,2,13,29,99,-11])
print("The min number is \(result.min)")
print("The max number is \(result.max)")
注意:这里涉及到元组的内容,如果对元组不熟悉的同学,可以先看看元组的定义和使用方法。

6、Optional Tuple Return Type  可选元组返回类型

func minMax1(array:[Int])->(min:Int,max:Int)?{
    var min = 0 ;
    var max = 0 ;
    for number in array{
        if number<min{
            min = number
        }
        if number > max {
            max = number
        }
    }
    return (min ,max)
}
说明:可选元组返回类型指的是可以返回元组,也可以返回nil。


7、Specifying External Parameter Names   指定外部名称

func sayHello05(to person:String, and anOtherPerson:String){
    print("Hello \(person) and \(anOtherPerson)")
}
sayHello05(to: "张三", and: "李四 !")

说明:这样的函数写法我们可以理解为语义化,在官方的解释是:The use of external parameter names can allow a function to be called  in an expressive,sentence-like manner,while still providing a function body that is readable and clear in intent.     意思是说外部参数使得函数表达的意思更丰富,使得函数体看起来就知道该函数的意图。

8、Omitting external Parameter Names    忽略外部参数的名称

func sayHello06(personName:String,_ anOtherPersonName:String){
  print("Hello \(personName) and \(anOtherPersonName)")
}
sayHello06("张三", "李四")
说明:我们可以使用下划线‘_’来忽略外部参数的名称,在调用的时候可以不用写外部参数的名称,正如上3所述,我们可以是改方法来声明函数,在调用的时候就不需要写形参的名称。


9、Default Parameter Values 默认的参数值

func sayHello07(personName:String="张三"){
    print("Hello \(personName)")
}
sayHello07()


10、Variadic Parameters   可变的参数(可能有多个参数)

func sayHello07(personName:String...){
    var allName:String = "" ;
    for name in personName{
       allName+=name
    }
    print("Hello \(allName)")
}
sayHello07("A","B")
说明:这里使用的‘...’来表示同一类型的参数可能有多个。





 





















 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值