在Swift中,类级别或结构级别的方法类似于Java中的静态方法吗?

21 浏览
0 Comments

在Swift中,类级别或结构级别的方法类似于Java中的静态方法吗?

是否有一种方法可以在Swift的类级别或结构级别上添加方法?

struct Card {
    var rank: Rank
    var suit: Suit
    func simpleDescription() -> String {
        return "The \(rank.simpleDescription()) of \(suit.simpleDescription())"
    }
}

摘自:苹果公司。“Swift编程语言。”iBooks。 https://itun.es/us/jEUH0.l

现在,如果您想要添加一个创建完整卡牌组的方法,最好的实现方法是什么?

admin 更改状态以发布 2023年5月24日
0
0 Comments

在结构体中:\n

struct MyStruct {
    static func something() {
        println("Something")
    }
}

\n通过调用:\n

MyStruct.something()

\n在类中:\n

class MyClass {
    class func someMethod() {
        println("Some Method")
    }
}

\n通过调用:\n

MyClass.someMethod()

0
0 Comments

添加一个类内的类型方法,需要在func声明之前添加class关键字:

class Dealer {
    func deal() -> Card { ... }
    class func sharedDealer() -> Dealer { ... }
}

添加结构体或枚举类型方法,需要在func声明之前添加static关键字:

struct Card {
    // ...
    static func fullDeck() -> Card[] { ... }
}

这两种方法一般等同于Java中的静态方法或Objective-C中的类方法(用+声明),但是关键字会根据你所在的类、结构体或枚举不同而发生变化。参考The Swift Programming Language book中的类型方法章节。

0