[對(duì)比OC學(xué)習(xí)swift]--day05函數(shù)

格式:

func  函數(shù)名稱(形式參數(shù)1 : 形參類型 ,...)-> 返回值類型
{
             // 邏輯代碼
}

// override代表是重寫了父類的方法
override func  函數(shù)名稱(形式參數(shù)1 : 形參類型 ,...)-> 返回值類型
{
             // 邏輯代碼
}

一、無參數(shù),無返回值

// 定義函數(shù)
func say() -> void               
{
       print("say hello")
}
// 函數(shù)調(diào)用
say()        



 幾種簡(jiǎn)寫形式:func say() -> ()          // void可以簡(jiǎn)寫成:()
             func say()                // 或是直接省略


二、無參數(shù),有返回值

func getNumber() -> Int
{
         return 998
}
print ( getNumber())

如果想要返回多個(gè)值,OC中的辦法是使用指針來實(shí)現(xiàn),在swift中我們使用的是元祖。

func getNumber() -> (Int , Int)
{
         return (1 , 998)
}

三、有參數(shù),無返回值

func  sum (num1 : Int , num2 : Int)
{
       print (num1 + num2)
}
sum (10 , num2 : 20)
// 注意函數(shù)調(diào)用的這里
// swift2.0開始,默認(rèn)將第二個(gè)參數(shù)名作為外部參數(shù)。
// 從第二個(gè)參數(shù)開始后面的參數(shù)名稱作為標(biāo)簽名稱。
如何指定標(biāo)簽
func  sum (Value1  num1 : Int , Value2  num2 : Int)
{
       print (num1 + num2)
}
sum (Value1 : 10 , Value2 : 20)
// 現(xiàn)在指定標(biāo)簽就是Value1、Value2了
如何忽略指定標(biāo)簽
func  sum (num1 : Int , _num2 : Int)
{
       print (num1 + num2)
}
sum (10 , 20)
// 本來默認(rèn)第二個(gè)參數(shù)的名稱是作為標(biāo)簽的,在參數(shù)名前面加了下劃線后就忽略了。
常量形參和變量形參(也就是OC中所說的值傳遞和地址傳遞)
  • 默認(rèn)情況下所有的形參都是常量形參,也就是說在函數(shù)中修改形參的值,是不會(huì)影響外部實(shí)參的值。
  • 變量形參,只需在形參名稱前面加上inout即可。
func change(inout  num1 : Int , inout num2 : Int)
{
       let  temp = num1
       num1 = num2
       num2 = temp
}
var n = 10
var m = 20
chang(&n , num2:&m)
// 這步之后 n = 20  ,  m = 10
  • inout修飾的參數(shù)是var類型的。


    示例
可變參數(shù)
  • 當(dāng)一個(gè)函數(shù)不確定接收多少個(gè)參數(shù)的時(shí)候,就可以使用可變參數(shù)。
func sums (numbers : Int... )       // numbers必須制定類型,傳入的是同種類型
    {
        var sum = 0
        for number in numbers         // numbers的本質(zhì)是一個(gè)數(shù)組
        {
            sum += number
        }
        print(sum)
    }
sums(1,2,5)
func sums (numbers : Int... , value : Float)
    {
        var sum = 0
        for number in numbers
        {
            sum += number
        }
        print(sum)
        print(value)
    }
 sums(1,2,5, value: 11.3)
參數(shù)默認(rèn)值
  • 可以給形參制定默認(rèn)值,如果一個(gè)形參制定了默認(rèn)值,那么調(diào)用的時(shí)候就可以不傳遞參數(shù)的值。如果是傳遞了參數(shù),就優(yōu)先使用傳入的值。
    func joinString(str1 : String, str2 : String = "哈哈", str3 : String)
    {
        print(str1,str2,str3)
    }
// 輸出:你,我,他
joinString("你", str2: "我", str3: "他")
// 輸出:你,哈哈,他      
joinString("你", str3: "我")

四、有參數(shù),有返回值

func sum( num1 : Int , num2 : Int) -> Int
{
          return   num1 + num2
}
let   a = sum( 20 , mun2:10)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容