类型属性和类型方法方法
类型属性
使用关键字static 来定义结构体和枚举的类型属性,关键字class 来为类定义类型属性。
语法:
struct Structname {
static var storedTypeProperty = " "
static var computedTypeProperty: Int {
// 这里返回一个 Int 值
}
}
enum Enumname {
static var storedTypeProperty = " "
static var computedTypeProperty: Int {
// 这里返回一个 Int 值
}
}
class Classname {
class var computedTypeProperty: Int {
// 这里返回一个 Int 值
}
}
类似于实例的属性,类型属性的访问也是通过点运算符(.)来进行。但是,类型属性是通过类型本身来获取和设置,而不是通过实例。
struct StudMarks {
static let markCount = 97
static var totalCount = 0
var InternalMarks: Int = 0 {
didSet {
if InternalMarks > StudMarks.markCount {
InternalMarks = StudMarks.markCount
}
if InternalMarks > StudMarks.totalCount {
StudMarks.totalCount = InternalMarks
}
}
}
}
var stud1Mark1 = StudMarks()
var stud1Mark2 = StudMarks()
stud1Mark1.InternalMarks = 98
print(stud1Mark1.InternalMarks) //97
stud1Mark2.InternalMarks = 87
print(stud1Mark2.InternalMarks) //87
类型方法
- 结构体和枚举的类型方法使用
static 关键字来声明
- 类的类型方法使用
class 关键字来声明
class Math{
class func abs(number:Int) -> Int{
if number < 0 {
return (-number)
}
else{
return number
}
}
}
struct absno{
static func abs(number:Int)->Int{
if number < 0 {
return (-number)
}
else{
return number
}
}
}
let no = Math.abs(number: -35)
let num = absno.abs(number: -5)
print(no) //35
print(num) //5
类型属性/方法只能由类本身来进行调用
|
请发表评论