標籤:
函數 懂程式設計語言的來說這個是最基本的了,任何語言都有函數這個概念,函數就是完成特定任務的獨立代碼塊。
函數怎麼建立:
1、建立一個無參無返回值的函數(實際上所有的函數都有返回值,這個函數返回void,它是一個空元組)
func testFunc(){ }
2、建立一個帶返回值的函數
func testFunc() -> String{ return "hello"}
3、建立一個帶參數和返回值的函數
func testFunc(name: String) -> String{ return "hello"+name}
4、建立一個帶多個參數和多個返回值的函數
func testFunc(name: String,age: Int) -> (myName:String,myAge:Int){ return (name,age)}
5、建立帶參數名稱的函數
func testFunc(myName name: String,myAge age: Int) -> (myName:String,myAge:Int){ return (name,age)}
ps:調用
testFunc(myName:"小王", myAge:18)
6、第5中的另外一種寫法,就是外部參數名和局部變數名是一樣的時候。
func testFunc(#name: String,#age: Int) -> (myName:String,myAge:Int){ return (name,age)}testFunc(name: "小王", age: 18)
7、建立帶預設值參數的函數
func testFunc(#name: String,age: Int = 10) -> (myName:String,myAge:Int){ return (name,age)}testFunc(name: "小王", age: 18)
ps:帶預設值的參數要麼不指定外部參數名(swift會自己預設指定一個就相當於帶了#號了)要麼必須指定,不能用#號
8、建立可變參數的函數
func allNums(nums: Double...) -> Double{ var totalNum: Double = 0 for num in nums{ totalNum += num } return totalNum}allNums(1,2,3)
9、函數參數是常量,不能修改的喔
例如:
func error(a: Int){ a = 2 這就會出現一個錯誤:Cannot assign to 'let' value 'a'}
那可以建立能夠修改的麼。當然可以。增加var關鍵字即可。
func error(var a: Int){ a = 2}error(3)
10、函數參數是值傳遞的,那有啥辦法讓它變成引用傳遞呢,也就是讓參數經過了函數的修改,函數外值發生改變了
func yy(inout a:Int,inout b: Int) { var c = a a = b b = a}yy(&10, &20)
但是,這樣是錯誤的,哪裡錯了呢。就是函數調用的時候,傳入的時字面量,這怎麼改。所以要傳入變數
var a = 10,b=20yy(&a, &b)
頭腦大風暴:函數居然有類型,它還能夠作為參數、類型。
例如:
func yy(inout a:Int,inout b:Int)
這個函數,它的類型是 (Int,Int)-> () .
它可以和int double這種用哦。 ---- 太強大了
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
【Swift】學習筆記(六)——函數