方法

方法參數(shù)

func(參數(shù)1,參數(shù)2...)->返回值{
}

1.參數(shù)形式:外部參數(shù)名 本地參數(shù)名:類型
2.聲明時(shí)可以省略外部參數(shù)名,這時(shí)外部參數(shù)名使用本地參數(shù)名
3.調(diào)用時(shí),第一個(gè)參數(shù)名可省略,但后面的參數(shù)名必須顯示表明。如果在聲明時(shí)加_,調(diào)用時(shí)也可以忽略參數(shù)名
4.方法可以沒有參數(shù),也可以沒有返回值
5.<strong>參數(shù)傳遞默認(rèn)為傳值方式</strong>

    //顯式內(nèi)部參數(shù)名,省略外部參數(shù)名
    func sayGreeting(name:String, _ words:String)->String{
        return words+"! "+name
    }
    func sayGreeting(){
        print("Hello!")
    }
    func sayGreeting(name:String)->String {
        return "Hello! "+name
    }
    //顯式內(nèi)部參數(shù)名,顯式外部參數(shù)名
    func sayGreeting(person name:String,greeting words:String)->String{
        return words+"! "+name
    }


  
  myObject.sayGreeting()
  myObject.sayGreeting("Jason")
  myObject.sayGreeting("Jason","Welcome")
  myObject.sayGreeting(person:"Jason", greeting:"You are welcome")

更多參數(shù)與返回值功能

1.提供參數(shù)默認(rèn)值
2.常量參數(shù)VS變量參數(shù)
3.可變數(shù)目參數(shù):實(shí)際上傳遞的是數(shù)組
4.inout參數(shù),可以改變外部實(shí)參(指針)
5.多個(gè)返回值,tuple類型

    //可變數(shù)目參數(shù)( 在后面加... )
    func averageNumber(numbers:Double...)->Double{
    
        var sum=0.0
        for item in numbers {
            sum+=item
        }
        return sum / Double(numbers.count)
    }
    
    

    //常量參數(shù) VS. 變量參數(shù)
    //常量參數(shù)在內(nèi)部不能改變,變量參數(shù)能改變,但無法對外部實(shí)參造成影響
    func changeParameter(data1:Int, var data2:Int){
        var dataTemp=data1
        data2++
        dataTemp++
    }

    

    //inout參數(shù)
    func swap(inout a:Int,inout b:Int){
        let tempA=a
        a=b
        b=tempA
    }
    
    
    //返回Tuple類型
    func minMax(array: [Int]) -> (min: Int, max: Int){
        var currentMin = array[0]
        var currentMax = array[0]
        for value in array[1..<array.count] {
            if value < currentMin {
                currentMin = value
            } else if value > currentMax {
                currentMax = value
            }
        }
        return (currentMin, currentMax)
    }

myObject.averageNumber(10,90,30,80,50,100)

var data1=100
var data2=200
myObject.swap(&data1,b: &data2)


let range=myObject.minMax([3,-9,23,15,-45,7])
print("max=\(range.max), min=\(range.min)")
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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