概述:在刚学习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")
说明:这里使用的‘...’来表示同一类型的参数可能有多个。