首页 > 代码库 > Swift中的参数内部名称和外部名称
Swift中的参数内部名称和外部名称
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中的参数内部名称和外部名称
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。