Swift學習Day3-----函數

函數

1.基本使用:func來聲明一個函數,使用名字和參數來調用函數,使用->來指定函數返回值,例如:

func sum(x1:Int,x2:Int)->Int{

return x1+x2

}

2.使用元組返回多個值

func calculateCount(string:String)->(Int,Int,Int){

? ? ? ? ? ? ?var vow = 0, con = 0, oth = 0

? ? ? ? ? ? ?for character in string.characters{

? ? ? ? ? ? switch String(character).lowercaseString{

? ? ? ? ? ? ? ? ?case "a","e","i","o","u":

? ? ? ? ? ? ? ? ?++vow

? ? ? ? ? ? ? ? case "b","c","d","f","g","h","j","k","l","m","n","p","q","r","s", ? ? ?"t","v","w","x","y","z":

? ? ? ? ? ? ? ? ++con

? ? ? ? ? ? ? default:

? ? ? ? ? ? ? ?++oth

? ? ? ? ? }

? ? }

? ? ? ? ? ?return(vow,con,oth)

}

3.函數的參數數量是可變的,用一個數組來獲取,例如:

?func sumOf(numbers :Int...)->Int{

? ? ? ? ? ? ? var sum :Int = 0

? ? ? ? ? ? ? for number in numbers{

? ? ? ? ? ? ? ? ? ? ?sum = sum + number

? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? return sum

? }

? ? ?print("sum = " + String(sumOf(1,2,3,4)))

4.函數可以嵌套函數。

被嵌套的函數可以訪問外側函數的變量,使用嵌套函數來重構一個太長或者太復雜的函數

func addCount(numbers : Double...){

? ? ? ? ? ?func add(var y:Int)->Int{

? ? ? ? ? ? ? ? ? ? ? ? ?y += 5

? ? ? ? ? ? ? ? ? ? ? ? return y

? ? ? ? ? }

? ? ? ? ? ? ? ? ?print(add(10))

}

5.函數可以作為另一個函數的返回值

func isNow()->(Bool ->Int){ // (Bool ->Int)是將要調用函數的參數和返回值

func isToday(time: Bool)-> Int{

if time == true{

print("今天")

return 1

} else{

print("非今天")

return 2

}

}

return isToday

}

var now = isNow()

now(false)


6.函數當做參數傳入另一個函數

// 小于20的數字

func lessThanTwenty(list:Int...)->Bool{

for num in list{

if num < 20{

return true

}

}

return false

}

// 奇數

func singleNum(num:Int..., condition:(Int...)-> Bool) -> [Int]{

var singleNumList = [Int]()

for item in num {

if condition(item) && item % 2 != 0{

singleNumList.append(item)

}

}

return singleNumList

}

print(singleNum(1,5,7,23, condition: lessThanTwenty))

7.函數參數名

外部參數名:有時當你調用一個函數將每個參數進行命名是非常有用的,以表明你傳遞給函數的每個參數的目的。

如果你希望用戶函數調用你的函數時提供參數名稱,除了設置本地地的參數名稱,也要為每個參數定義外部參數名稱。你寫一個外部參數名稱在它所支持的本地參數名稱之前,之間用一個空格來分隔:

func lessThanTwenty(outList list:Int...)->Bool{

for num in list{

if num < 20{

return true

}

}

return false

}

lessThanTwenty(outList: 1)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容