这是我参加更文应战的第12天,活动概况查看: 更文应战
办法是与特定类型相关联的函数。
关于办法,Swift 和 OC 最主要的差异是,在Swift中,结构体和枚举数据结构与算法都能够定义办法。
实swift代码例办法
-
实例办法
- 实例办法:归于特定优先级调度算法类、结构体或枚举类型的实swift体系例的函数
- 实例办法与函数的语法相同
- 实例办法能够隐式拜访该类型所有其他实例办法和特征,实例办法只能在其所属类型的特定宫颈癌疫苗实例上调用
class Student { var name = "" func gotoSchool() { print("(name)去学校") } } let stu = Student() stu.name = "李雷" stswiftkeyu.gotoSchool() log: 李雷去数据结构知识点总结学校
-
self
特征- 类型的每个实例都有一个隐式特征
self
,它等同于实例自身。运用self
特征在其自己的实例办法中引证其时实例方针 - 大多数情况下,不需求在实例办法中运用枚举类型 java
self
特征去引证该实例的特征或许调用其他办法,由于 Swift 会自动揣swift代码度为其时类型的实例。但是当实例办法的某个参数称谓与swiftkey实例特征称谓相同的时,参数称谓优先级比较高,若是需求运用特征,则需求用self
来差异参数称谓和特征称谓
class Studenswift代码是什么意思t { v枚举类型 javaar name =swiftkey "" func sayHI(name :String) {Go print("hello (name),I am (self.name)") } } let student = Student() student.name = "Li lei" student.sayHI(name: "hanmeimei") log: hello hanmeimei,I am Li lei
- 类型的每个实例都有一个隐式特征
-
实例办法中修改值类型
结构体和枚举都是值类型。默许情况下,值类型的特征无法在其实例办法中修改。假定需求在特定办法中修改其特征,能够运用关键字
mutating
,将其放在枚举或结构体中所定义实例办法的func
关键字之前。当办法结束时,所做的任何更改都将写回原始数据结构中。该办法还可认为其隐枸杞式self
特征分配一个全新Go的实例,而且该self
所标明的新实例将在办法结束时替换现有实例优先级表- 结构体
struct Student { var name = "" mutating func changeName(name:String数据结构与算法) { //赋值给隐式的self特征 self = Student.init(name: name) } } var stude狗狗币nt = Stu数据结构c言语版第二版课后答案dent.init(name: "lilei"swift言语) print(student.name) student优先级c言语.changeName(name: "hanmeim优先级最高的运算符ei") print(student.name枚举类型 c言语) log: lilei hanmeimei
- 枚举
enum Color{ case red case yellow case green mutating f数据结构c言语版第二版课后答案unc changeColor() { switch self { case .优先级表red: self = .yellow case .yelswift世界结算体系low: self = .green case .green: self = .red } } } var color = Color.red print(color) co优先级和劣后级的差异lor.changeColor() print(color) log: red yellow
类型办法
-
类型办法:运用类型自身而不是类型的实例去调用的办法。
-
在
func
关键字的前面swifter加static
关键字,若其时swifter的类型是类类型时,也能够运用class
关键字,对类类型运用class
关键字时,标明答应子类重写父类的办法 -
在类型办法中,隐式的
self
特征引证的是类型自身而不再宫崎骏是类型的实例。能够运用self
特征来枚举类型的用法消除类特征和类型办法参数之间的Go歧义cswift怎么读lass Student { static var name = "hanmeimei" class func sayHI(name :String) { print("hello (name), I am (self.name)") } } Student.sayHI(name: "lilei") log: hello lilei, I am han工商银行meimei