码迷,mamicode.com
首页 > 编程语言 > 详细

Swift中的参数内部名称和外部名称

时间:2017-02-15 12:20:44      阅读:265      评论:0      收藏:0      [点我收藏+]

标签:self   1.3   img   截图   span   ima   gre   参数   log   

1.什么是参数的内部名称和外部名称?

struct Color {
    let red, green, blue: Double
    
    init(red redColor: Double,green greenColor: Double,blue blueColor: Double) {
        red = redColor
        green = greenColor
        blue = blueColor
    }
}

1.1  Color这个结构体的构造方法中提供了三个参数,其中red是第一个参数的外部名称,redColor是第一个参数的内部名称;同理green和blue分别是第二、三个参数的外部名称,greenColor和blueColor分别是第二、三个参数的内部名称。外部名称在创建实例时的提示中显示,内部名称只能在构造方法内部使用,两个名称指的是同一个参数。在创建实例时会显示外部名称截图:

技术分享

 

1.2  如果只有参数的内部名称,没有外部名称,编译器会自动为参数创建一个和内部名称相同的外部名称。看实例:

 技术分享

这个只有一个参数的构造函数的外部参数名称和内部参数名称相同。

1.3  内部参数名称可以用来区分是传入的参数还是实例的属性,也可以用self来区分

struct Color {
    let red, green, blue: Double
    
    init(RED redColor: Double,GREEN greenColor: Double,BLUE blueColor: Double) {
        red = redColor
        green = greenColor
        blue = blueColor
    }
    
    init(white: Double) {
        red = white
        green = white
        blue = white
    }
    
    init(red: Double,green: Double,blue: Double) {
        self.red = red
        self.green = green
        self.blue = blue
    }
}

1.4  编译器根据外部参数名称去检查构造器是重载还是重名的。 

1.5  如果不希望提供参数的外部名称,可以用_显示代替参数的外部名称,创建实例的时候,编译器会显示参数的内部名称。

struct Color {
    let red, green, blue: Double
    
    init(red redColor: Double,green greenColor: Double,blue blueColor: Double) {
        red = redColor
        green = greenColor
        blue = blueColor
    }
    
    init(white: Double) {
        red = white
        green = white
        blue = white
    }

    init(_ red1: Double,_ green1: Double,_ blue1: Double) {
        self.red = red1
        self.green = green1
        self.blue = blue1
    }
    
}

技术分享

 

 

 

 

Swift中没有为属性创建带下划线的后台实例变量,所以在

Swift中的参数内部名称和外部名称

标签:self   1.3   img   截图   span   ima   gre   参数   log   

原文地址:http://www.cnblogs.com/wobuyayi/p/6400672.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!