Swift學習筆記(二十九)——函式的使用1
(1)引數型別為可選型Optional. 如果引數為空,則輸出??後面的字串,否則輸出可選型的引數值。
import Foundation
func sayHello(name:String?)->String{
let result = "Hello," + (name ?? "無名氏")
return result
}
var nickname:String?
nickname = "Jack"
println(sayHello(nickname))
(2)函式如果沒有返回值,可以在後面加上->Void。
(3)使用元祖讓函式返回多個值。
import Foundation
let userScores = [12,90,45,3,213,45]
func maxMinScores(scores:[Int]) -> (maxScores:Int,minScores:Int){
var curmax = scores[0]
var curmin = scores[0]
for score in scores[1 ..< scores.count]{
curmax = max(curmax,score)//Swift中的全域性函式;
curmin = min(curmin,score)
}
return (curmax,curmin)
}
let result = maxMinScores(userScores)
println("最大值:\(result.maxScores)" )
println("最小值:\(result.minScores)" )
或者:
import Foundation
let userScores = [12,90,45,3,213,45]
func maxMinScores(scores:[Int]) -> (Int,Int){
var curmax = scores[0]
var curmin = scores[0]
for score in scores[1 ..< scores.count]{
curmax = max(curmax,score)//Swift中的全域性函式;
curmin = min(curmin,score)
}
return (curmax,curmin)
}
let result = maxMinScores(userScores)
println("最大值:\(result.0)" )
println("最小值:\(result.1)" )
上述例子如果返回值為空,則需要進行如下的優化:
import Foundation
let userScores = [12,90,45,3,213,45]
func maxMinScores(scores:[Int]) -> (maxScore:Int , minScore:Int)?{
//如果傳入的引數陣列為空,則返回nil;
if scores.isEmpty{
return nil
}
var curmax = scores[0]
var curmin = scores[0]
for score in scores[1 ..< scores.count]{
curmax = max(curmax,score)//Swift中的全域性函式;
curmin = min(curmin,score)
}
return (curmax,curmin)
}
//返回的是一個可選型;
if let result = maxMinScores(userScores){
println("最大值:\(result.maxScore)" )
println("最小值:\(result.minScore)" )
}
如果傳入的陣列引數為空,再次進行優化:
import Foundation
var userScores:[Int]? = [1,2,3,4,5,6]
func maxMinScores(scores:[Int]) -> (maxScore:Int , minScore:Int)?{
//如果傳入的引數陣列為空,則返回nil;
if scores.isEmpty{
return nil
}
var curmax = scores[0]
var curmin = scores[0]
for score in scores[1 ..< scores.count]{
curmax = max(curmax,score)//Swift中的全域性函式;
curmin = min(curmin,score)
}
return (curmax,curmin)
}
//返回的是一個可選型;
userScores = userScores ?? []
if let result = maxMinScores(userScores!){
println("最大值:\(result.maxScore)" )
println("最小值:\(result.minScore)" )
}
github主頁:https://github.com/chenyufeng1991 。歡迎大家訪問!
相關文章
- Matlab學習筆記(1)——imshow函式的使用Matlab筆記函式
- swift學習筆記《1》Swift筆記
- Swift學習筆記第四篇(函式)Swift筆記函式
- Swift學習筆記(三十四)——函式型別Swift筆記函式型別
- iOS學習筆記42 Swift(二)函式和閉包iOS筆記Swift函式
- 深度學習——loss函式的學習筆記深度學習函式筆記
- 《從零開始學Swift》學習筆記(Day 40)——解構函式Swift筆記函式
- async函式學習筆記。函式筆記
- Go 函式 學習筆記Go函式筆記
- 分析函式(學習筆記)函式筆記
- 生成函式 學習筆記函式筆記
- 深度學習(二十九)Batch Normalization 學習筆記深度學習BATORM筆記
- python程式設計學習筆記⑦-1函式Python程式設計筆記函式
- 《從零開始學Swift》學習筆記(Day 21)——函式返回值Swift筆記函式
- TS學習筆記(四):函式筆記函式
- JavaScript學習筆記 - 原生函式JavaScript筆記函式
- Golang學習筆記-1.6 函式Golang筆記函式
- Oracle學習筆記(6)——函式Oracle筆記函式
- LoadRunner函式學習筆記函式筆記
- MYSQL學習筆記14: 函式MySql筆記函式
- swift學習筆記《4》Swift筆記
- 《從零開始學Swift》學習筆記(Day 37)——預設建構函式Swift筆記函式
- 《從零開始學Swift》學習筆記(Day 39)——建構函式過載Swift筆記函式
- 《從零開始學Swift》學習筆記(Day 19)——函式引數傳遞Swift筆記函式
- 學習筆記:javascript中的Generator函式筆記JavaScript函式
- 【C#學習筆記】類建構函式使用C#筆記函式
- 《從零開始學Swift》學習筆記(Day 7)——Swift 2.0中的print函式幾種過載形式Swift筆記函式
- angular學習筆記(二十九)-$q服務Angular筆記
- swift學習筆記《2》-swift語法Swift筆記
- python學習筆記(六)——函式Python筆記函式
- OpenCV學習筆記(4)——mixChannels函式OpenCV筆記函式
- OpenCV學習筆記(5)——normalize函式OpenCV筆記ORM函式
- Flutter學習筆記(4)--Dart函式Flutter筆記Dart函式
- js純函式學習筆記(一)JS函式筆記
- C++學習筆記(二)——函式C++筆記函式
- c語言學習筆記===函式C語言筆記函式
- 【C#學習筆記】函式呼叫C#筆記函式
- oracle學習筆記8: 分析函式Oracle筆記函式