中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

Swift2.0(9)函數的使用(一)

發布時間:2020-07-07 09:33:15 來源:網絡 閱讀:341 作者:ymanmeng123 欄目:移動開發
  • 函數的基本用法

一個簡單的函數,如下:

     func sayHello(personName:String) -> String {

         let s = "你好" + personName + "!"

         return s

     }

     let s = sayHello("iOS")

     print(s)

     func關鍵字:用于標示,這是一個函數

     函數名字:sayHello  應當清晰明了且符合駝峰規則編碼規范

     參數列表:(personName:String)  personName是參數名,String是這個參數的類型

     返回值:-> String 表示返回值是一個字符串類型

     函數體:{ } 放置代碼,即函數的執行代碼

  • 函數的參數

函數可以沒有參數:

     func sayHello() -> String {

         return "你好!"

     }

     print(sayHello())

可以為函數設置多個參數,如:

     func sayHello(personName personName:String, isMale isMale:Bool) -> String {

         var s:String;

         if ( isMale ) {

             s = "你好" + personName + ",帥哥!"

         }

         else {

             s = "你好" + personName + ",美女!"

         }

         return s

     }

     print(sayHello(personName: "iOS", isMale: true))

參數的名字:

     內部參數名:該參數名只在函數的內部能夠看到,如:

     func sayHello(personName:String) -> String {

         let s = "你好" + personName + "!"

         return s

     }

     print(sayHello("iOS"))

     外部參數名:該參數名還可以在函數的外部看到,如:

     func sayHello(personName personName:String) -> String {

         let s = "你好" + personName + "!"

         return s

     }

     print(sayHello(personName: "iOS"))

     第二個參數及后面的參數,無論第一個參數是否是外部參數,都是外部參數,如:

     func sayHello(person1Name:String, person2Name:String) -> String {

         let s = "你好 " + person1Name + " and " + person2Name + ""

         return s

     }

     print(sayHello("iOS", person2Name: "Android"))

     后續的參數前添加 “_ "可以打破這一規則

     func sayHello(person1Name:String, _ person2Name:String) -> String {

         let s = "你好 " + person1Name + " and " + person2Name + ""

         return s

     }

     print(sayHello("iOS", "Android"))

帶可變參數的函數,如:

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

         var total = 0;

         for n in numbers {

             total += n

         }

         return total

     }

     print(sum(1,2,3,4,5))

函數的默認參數,如:

     func sayHello(personName personName:String, isMale:Bool true) -> String {

         var s:String;

         if ( isMale ) {

             s = "你好" + personName + ",帥哥!"

         }

         else {

             s = "你好" + personName + ",美女!"

         }

         return s

     }

     //print(sayHello(personName: "iOS", isMale: true))

     print(sayHello(personName: "iOS"))

     函數的默認參數,要遵循從最右邊開始的規則

函數的重載,如:

     func sayHello(personName personName:String) ->String {

         let s = "你好" + personName + "!"

         return s

     }

     func sayHello(personName personName:String, isMale:Bool) -> String {

         var s:String

         if ( isMale ) {

             s = "你好" + personName + ",帥哥!"

         }

         else {

             s = "你好" + personName + ",美女!"

         }

         return s

     }

     print(sayHello(personName: "iPhone”))  // 你好iPhone!

     print(sayHello(personName: "iOS", isMale: true)) // 你好iOS,帥哥!

     函數重載的依據是:參數列表不同

     但要注意函數在重載時,如果參數帶默認值帶來的歧義的情況

參數的可變性:

     參數默認都是常量(let),在函數內不能進行修改

     可以顯式聲明參數為變量(var),這樣參數在函數內就可以被修改

     func factorial(var number:Int) ->Int {

         var result:Int = 1

         while number > 1 {

             result = result * number

             number--

         }

         return result

     }

     print(factorial(6))

     要注意:形參不能修改實參

形參修改實參的辦法:

     swift精心設計了inout關鍵字,用于聲明形參是一個出參,實參使用&運算符

     func mySwap(inout a:Int, inout b:Int) {

         var tem:Int

         tem = a

         a = b

         b = tem

     }

     var x1 = 10, x2 = 20

     mySwap(&x1, b: &x2)

     print("x1=\(x1) x2=\(x2)”)     // x1=20 x2=10

     注意:出參的實參必須是變量、出參不能帶默認值、inout關鍵不能和let及var一期使用

  • 函數的返回值

無返回值:

     func mySwap(inout a:Int, inout b:Int) {

         var tem:Int

         tem = a

         a = b

         b = tem

     }

     var x1 = 10, x2 = 20

     mySwap(&x1, b: &x2)

     print("x1=\(x1) x2=\(x2)”)     // x1=20 x2=10

一個返回值:

     func factorial(var number:Int) ->Int {

         var result:Int = 1

         while number > 1 {

             result = result * number

             number--

         }

         return result

     }

     print(factorial(6))

多個返回值(元組):

     func count(kids: Dictionary<String, String>) -> (girls:Int, boys:Int{

         var girls = 0, boys = 0

         for c in kids.values {

             if c == "Girl" {

                 girls++

             }

             else if c == "Boy" {

                 boys++

             }

         }

         return (girls, boys)

     }

     var k:Dictionary<String, String> = ["AAA":"Girl", "BBB":"Boy", "CCC":"Girl", "DDD":"Girl", "EEE":"Boy"]

     var (g, b) = count(k)

     print("girls=\(g) boys=\(b)")


向AI問一下細節

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

AI

军事| 玉门市| 诸暨市| 北京市| 宁国市| 沂南县| 青田县| 馆陶县| 万盛区| 新津县| 东港市| 台湾省| 舞钢市| 盘锦市| 琼海市| 永年县| 麻城市| 陕西省| 上杭县| 蓝山县| 永靖县| 宜兰市| 锡林浩特市| 绵阳市| 双牌县| 甘洛县| 马龙县| 丰台区| 板桥市| 嵩明县| 云林县| 工布江达县| 高邮市| 武强县| 凤翔县| 马尔康县| 仁怀市| 重庆市| 永福县| 分宜县| 保定市|