Swift语言类型属性存储属性Swift语言入门很简单大学霸

Swift语言类型属性存储属性Swift语言入门很简单大学霸

Swift语言快速入门v3.0

Swift语言快速入门v3.0

8.2.3  类型属性Swift语言类型属性存储属性Swift语言入门很简单大学霸类型属性就是不需要对类进行实例化就可以使用的属性。它需要使用关键字class进行定义,其定义形式如下:

class var 类型属性名:数据类型{

返回一个值

}

例如下面代码定义了一个类型属性count,代码如下Swift语言类型属性存储属性Swift语言入门很简单大学霸:

class var count:Int{

return 20

}

类型属性也是可以被访问的,其访问类型属性的一般形式如下:

类名.类型属性

【示例8-10】以下代码定义了一个类型属性newvalue,然后进行遍历访问该属性的每一个字符,并输出。代码如下Swift语言类型属性存储属性Swift语言入门很简单大学霸:

import Foundation

class NewClass {

class var newvalue:String{                                                                  //定义类型属性newvalue

return “Hello”

}

}

println(NewClass.newvalue)

println(“遍历NewClass.newvalue:”)

//遍历类型属性newvalue的值

for index in NewClass.newvalue {                                      

    println(index)

}

运行结果如下所示:

Hello

遍历NewClass.newvalue

H

e

l

l

o

Program ended with exit code: 0

在使用类型属性时需要注意以下2点Swift语言类型属性存储属性Swift语言入门很简单大学霸:

1.let关键字不能声明类型属性

定义类型属性时除了有关键字class外,还需要使用var关键字,但不能使用let关键字,否则程序提示错误,如以下代码,此代码定义了一个类型属性newvalue。代码如下:

import Foundation

class NewClass {

class let newvalue:Int{

        return 20

    }

}

println(NewClass.newvalue)

在此代码中使用了关键字let进行了类型属性的声明,导致程序出现了以下的错误Swift语言类型属性存储属性Swift语言入门很简单大学霸:

‘let’ declarations cannot be a computed property

2.存储属性

在类型方法中不能使用存储属性,否则程序就会出现错误,如以下的代码,此代码实现的是输出字符串”Hello”。

import Foundation

class NewClass {

var count:Int=20

class var newvalue:Int{

 return count

}

}

println(NewClass.newvalue)

其中,count是存储属性,newvalue是类型属性。在代码中,将str用在newvalue中,导致程序出现了以下的错误:

‘NewClass.Type’ does not have a member named ‘count’

3.对象不能访问类型属性Swift语言类型属性存储属性Swift语言入门很简单大学霸

类型属性只可以使用类去访问,而不可以使用对象进行访问。否则,就会出现错误,如以下的代码:

import Foundation

class NewClass {

class var newvalue:Int{

return 20

}

}

var newClass=NewClass()

println(newClass.newvalue)

在此代码中,定义了一个类型属性newvalue,但在访问它时使用了对象,导致程序出现了以下错误:

‘NewClass’ does not have a member named ‘newvalue’

类型属性和存储属性一样,除了可以进行访问外,还可以进行修改,其语法形式如下:

类名.类型属性=修改的内容

【示例8-11】以下程序将类型属性0变为200,并输出。代码如下所示Swift语言类型属性存储属性Swift语言入门很简单大学霸:

import Foundation

var value:Int=0

class NewClass{

class var count :Int{

get{

var newvalue=value

return newvalue

}

set{

value=newValue

}

}

}

println(“修改前:\(NewClass.count)”)

NewClass.count=200

println(“修改后:\(NewClass.count)”)

运行结果如下所示:

修改前:0

修改后:200

Program ended with exit code: 0Swift语言类型属性存储属性Swift语言入门很简单大学霸

Comments are closed.