【Swift】學習筆記(六)——函數

來源:互聯網
上載者:User

標籤:

函數  懂程式設計語言的來說這個是最基本的了,任何語言都有函數這個概念,函數就是完成特定任務的獨立代碼塊。


函數怎麼建立:

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】學習筆記(六)——函數

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.