91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

13.函數的類型和基本使用

發布時間:2020-03-02 07:01:03 來源:網絡 閱讀:296 作者:光光ing 欄目:移動開發

第一:函數類型:

/*

函數類型:

類似于C語言的指向函數的指針

類似于OC語言的block

函數類型是由函數的參數類型和返回值類型組成的

*/

// 這兩個函數的類型是 (Int, Int) -> Int

func sum(a: Int, b: Int) ->Int

{

return a + b;

}


func sub(a: Int, b: Int) ->Int

{

return a - b;

}


// 可以利用函數類型定義函數變量和常量

var funcP:(Int, Int) -> Int = sum

funcP = sub

print(funcP(10, 20))


// 函數類型可以作為函數的參數

func calFunc(a: Int, b: Int ,Option:(Int, Int) -> Int) ->Int

{

    return Option(a, b)

}

print(calFunc(10, b: 20, Option: sum))

print(calFunc(10, b: 20, Option: sub))


// 函數類型可以作為函數返回值

func max(a: Int, b: Int) -> Int

{

    return a > b ? a : b

}

func min(a: Int, b: Int) -> Int

{

    return a < b ? a : b

}


func chooseFunc(getMax:Bool) -> (Int , Int) -> Int

{

return getMax ? max : min

}


var funcP2:(Int , Int) -> Int = chooseFunc(false)

print(funcP2(10, 20))



第二 .  函數: 完成某個特定任務的代碼塊, 給代碼起一個合適的名稱稱之為函數名稱. 以后需要執行代碼塊只需要利用函數名稱調用即可, 好比每個人都有一個名字, 叫名字就能找到對應的人

格式:

func 函數名稱(參數名:參數類型, 參數名:參數類型...) -> 函數返回值 {函數實現部分}



// 1.沒有參數沒有返回值

func about() -> Void {

    print("iPhone7s Plus")

}

// 沒有返回值的簡單寫法

func about1() {

    print("iPhone7s")

}


about()


let view : UIView


// 2.有參數沒有返回值

func callPhone(phoneNum : String) {

    print("打電話給\(phoneNum)")

}


callPhone("+86 110")



// 3.沒有參數有返回值

func readMessage() -> String {

    return "吃飯了嗎?"

}


print(readMessage())



// 4.有參數有返回值

func sum(num1 : Int, num2 : Int) -> Int {

    return num1 + num2

}


sum(20, num2: 30)


/*

嵌套函數

*/

func showArray(array:[Int])

{

    for number in array

    {

        print("\(number), ")

    }

}

var number = 998;

func bubbleSort(inout array:[Int])

{

    print(number)

    func swap(inout a:Int, inout b:Int)

    {

        print(number)

        let temp = a

        a = b

        b = temp

    }

    

    let count = array.count;

    for var i = 1; i < count; i++

    {

        for var j = 0; j < (count - i); j++

        {

            if array[j] > array[j + 1]

            {

                swap(&array[j], b: &array[j + 1])

//                let temp = array[j]

//                array[j] = array[j + 1]

//                array[j + 1] = temp


            }

        }

    }

}


var arr:Array<Int> = [31, 13, 52, 84, 5]

bubbleSort(&arr)

showArray(arr)



// 1.內部參數和外部參數

// 內部參數:在函數內部可以看到的參數名稱,稱之為內部參數

// 外部參數:在函數調用時,可以看到的參數,成之為外部參數

// 默認情況下從第二個參數開始,既是內部參數也是外部參數

// 如果希望將第一個參數也聲明稱外部參數,只需要在標識符前加上外部參數的名稱即可

func sum(num1 num1 : Int, num2 : Int) -> Int {

    return num1 + num2

}

// 函數的重載:函數名稱相同,參數不同(1.參數的類型不同 2.參數的個數不同)


func sum(num1 : Int, num2 : Int, num3 : Int) -> Int {

    return num1 + num2 + num3

}

// 2.默認參數

func makeCoffee(coffeeName : String = "拿鐵") -> String {

    return "制作了一杯\(coffeeName)咖啡"

}


makeCoffee("雀巢")

makeCoffee("貓屎")


makeCoffee()


// 3.可變參數

func sum(nums : Int...) -> Int {

    var result = 0

    

    for num in nums {

        result += num

    }

    

    return result

}


sum(12, 30, 40)

sum(44, 20, 30, 44, 55, 66)


// 4.引用參數

var m = 20

var n = 30


// 如果形參前面有inout,則需要傳遞指針到函數內

func swapNum(inout m : Int,inout n : Int) {

    let temp = m

    m = n

    n = temp

}


swapNum(&m, n: &n)


print("m:\(m) n:\(n)")


// 5.函數的嵌套使用(不常用)

func test() {

    

    func demo() {

        print("demo")

    }

    

    print("test")

    

    demo()

}


test()


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

讷河市| 砀山县| 宝应县| 鹰潭市| 通化市| 荣昌县| 广安市| 呼和浩特市| 高唐县| 如皋市| 双柏县| 新泰市| 静宁县| 中牟县| 南宫市| 安乡县| 西乡县| 盖州市| 上林县| 招远市| 巴中市| 长子县| 龙川县| 五家渠市| 漯河市| 深圳市| 永平县| 邳州市| 石门县| 来安县| 大姚县| 丹寨县| 札达县| 巴青县| 东安县| 乡宁县| 荃湾区| 铅山县| 曲阳县| 兰考县| 马边|