Swift语言方法类型方法Swift语言入门很简单大学霸
Swift语言方法类型方法Swift语言入门很简单大学霸
8.3.2 类型方法实例方法是被类的某个实例调用的方法Swift语言方法类型方法Swift语言入门很简单大学霸。开发者还可以定义类自身调用的方法,这种方法被称为类型方法(因为类被认为是一种类型。所以,属于类的方法,被称为类型方法)。定义类型方法需要在func关键字之前加上关键字class,其一般定义形式如下:
class 类名 {
class func 方法名(参数1:数据类型, 参数1:数据类型,…) {
…
}
}
Swift语言方法类型方法Swift语言入门很简单大学霸在定义好类型方法后,就可以进行调用了,其调用的一般形式如下:
类名.方法名(参数1,参数2,…)
注意:这里的方法名为类型方法名。
1.不带参数列表的类型方法
不带参数列表的类型方法就是方法名后面的参数列表中没有参数。以下定义了一个输出字符串”Hello”中字符的类型方法。代码如下:
import Foundation
class NewClass {
class var str:String{
return “Hello”
}
//Swift语言方法类型方法Swift语言入门很简单大学霸类型方法
class func printHello(){
for index in str{
println(index)
}
}
}
NewClass.printHello()
Swift语言方法类型方法Swift语言入门很简单大学霸运行结果如下所示:
H
e
l
l
o
Program ended with exit code: 0
2.Swift语言方法类型方法Swift语言入门很简单大学霸具有参数的类型方法
具有参数的类型方法是具有参数列表方法。随着参数的不同,可以将具有参数的类型方法分为具有一个参数的类型方法和具有多个参数的类型方法。以下就是具有一个参数的类型方法,该方法实现输出任意字符串的字符。代码如下:
import Foundation
class NewClass {
class func printString(str:String){
for index in str{
println(index)
}
}
}
NewClass.printString(“Swift”)
运行结果如下所示:
S
w
i
f
t
Program ended with exit code: 0
具有多个参数的类型方法说明在参数列表中有多个参数以及类型,参数和参数之间要使用“,”逗号分隔。以下就是定义了多个参数的类型方法,此方法实现了字符串和字符串的连接功能。代码如下:
import Foundation
class NewClass {
//具有多个参数的类型方法
class func joinerString(string:String,toString:String,withjoiner:String){
println(“str1、str2、str3实现关联为:\(string)\(withjoiner)\(toString)”)
}
}
var str1=”Hello”
var str2=”Swift”
var str3=”——”
println(“str1=\(str1)”)
println(“str2=\(str2)”)
println(“str3=\(str3)”)
NewClass.joinerString(str1,toString: str2,withjoiner: str3)
运行结果如下所示:
str1=Hello
str2=Swift
str3=——
str1、str2、str3实现关联为:Hello——Swift
Program ended with exit code: 0
注意:在使用类方法时需要注意以下3点:
(1)存储属性
在一个类型方法中不可以使用存储属性,否则程序就会出现错误,如以下的代码,此代码实现的是输出字符串”Hello”。
import Foundation
class NewClass {
var str=”Hello”
class func printHello(){
for index in str{
println(index)
}
}
}
NewClass.printHello()
由于str是存储属性,而printHello()是一个类型方法,在此代码中将str用在了printHello()方法中,导致程序出现了以下的错误:
‘NewClass.Type’ does not have a member named ‘str’
(2)类调用方法
所有的类型方法必须要使用类去调用,而非对象,否则就会出现错误,如以下的代码:
import Foundation
class NewClass {
class var str:String{
return “Hello”
}
class func printHello(){
for index in str{
println(index)
}
}
}
let newClass=NewClass()
newClass.printHello()
由于在此代码中,方法printHello()是一个实例方法,但是在调用时,使用对象进行了调用,导致程序出现了以下错误:
‘NewClass’ does not have a member named ‘printHello’
(3)外部参数名
和实例方法相同, Swift默认给类型方法的第一个参数名称一个局部参数名称;默认同时给第二个和后续的参数名称局部参数名称和外部参数名称。在调用时,一定不要忘记外部参数名Swift语言方法类型方法Swift语言入门很简单大学霸。
Comments are closed.