Я можу побачити такі визначення у бібліотеці Swift:
extension Bool : BooleanLiteralConvertible {
static func convertFromBooleanLiteral(value: Bool) -> Bool
}
protocol BooleanLiteralConvertible {
typealias BooleanLiteralType
class func convertFromBooleanLiteral(value: BooleanLiteralType) -> Self
}
Яка різниця між функцією члена, визначеною як, static func
та іншою, визначеною як class func
? Це просто static
для статичних функцій структур і перерахунків, class
для класів і протоколів? Чи є інші відмінності, про які варто знати? Що обґрунтовує наявність цього розрізнення у самому синтаксисі?
class func
? З інформацією, яку ми маємо зараз, ця відмінність здається досить марною, чи не так?
class func
s
error: class methods are only allowed within classes; use 'static' to declare a static method