当前位置: 首页 > 面试题库 >

Swift类中的静态vs类函数/变量?

司空实
2023-03-14
问题内容

以下代码在Swift 1.2中进行编译:

class myClass {
    static func myMethod1() {
    }
    class func myMethod2() {
    }
    static var myVar1 = ""
}

func doSomething() {
    myClass.myMethod1()
    myClass.myMethod2()
    myClass.myVar1 = "abc"
}

静态 函数和 函数有什么区别?我应该使用哪一个?何时使用?

如果我尝试定义另一个变量class var myVar2 = "",它说:

类中尚不支持的类存储属性;您是说“静态”吗?

如果支持此功能,则 静态 变量和 变量之间有什么区别(即,当两者都在类中定义时)?我应该使用哪一个?何时使用?

(Xcode 6.3)


问题答案:

staticclass与类两者关联的方法,而不是一个类的实例。区别在于子类可以覆盖class方法。他们不能覆盖static方法。

class 属性在理论上将以相同的方式起作用(子类可以覆盖它们),但是在Swift中尚无法实现。



 类似资料:
  • 问题内容: Swift的最佳做法是什么? 选项1: 然后 选项2: 然后 问题答案: tl; dr 当您存储可变状态时的选项1(类或结构),因为您需要其他实例。 当您要存储静态变量时,可以使用选项2(作用域全局变量),因为它速度更快且使用的内存更少。 具有变量的Singleton类(或结构) 全球状态通常被认为是“坏事”。很难考虑,会引起问题,但有时是不可避免的。 如果您想拥有多个实例,请创建一个

  • 问题内容: 我试图弄清楚如何声明一个静态变量,其范围仅限于Swift中的函数。 在C中,这可能看起来像这样: 在Objective-C中,基本上是相同的: 但是我似乎无法在Swift中做这样的事情。我尝试通过以下方式声明变量: 但是这些都会导致错误。 第一个抱怨“静态属性只能在类型上声明”。 第二个抱怨“期望的声明”(在哪里)和“期望的模式”(在哪里) 第三条抱怨“一行上的连续语句必须用’;’分隔

  • 问题内容: 我可以在Swift库中看到这些定义: 定义为的成员函数与定义为的另一个成员函数有什么区别?仅仅是为了结构和枚举的静态功能,以及用于类和协议吗?还有其他应该知道的区别吗?在语法本身中具有这种区别的原理是什么? 问题答案: 是否仅将static用于结构和枚举的静态函数,将class用于类和协议? 那是主要区别。其他一些区别是类函数是动态调度的,并且可以被子类覆盖。 协议使用class关键字

  • 我可以在Swift库中看到这些定义: 定义为的成员函数和定义为的成员函数之间有什么区别?简单地说,是用于结构和枚举的静态函数,而是用于类和协议吗?还有什么其他的不同之处是你应该知道的吗?语法本身有这种区别的理由是什么?

  • 问题内容: 我想创建一个将保留所有实用程序方法的类,并将在整个应用程序中使用这些方法。 问题:1 创建一个单例类并在其中保留所有必需的方法是好事,还是应该创建一个所有函数都是静态的类? 问题:2 快速的上述两种方法之间的主要区别是什么? 问题:3 它会如何影响iOS的性能? 问题答案: 当然,这听起来令人困惑并且可以辩论。但是,从最佳实践中,我可以提出一些建议。 Singleton 通常用于创建资

  • 本文向大家介绍python类和函数中使用静态变量的方法,包括了python类和函数中使用静态变量的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python类和函数中使用静态变量的方法。分享给大家供大家参考。具体分析如下: 在python的类和函数(包括λ方法)中使用静态变量似乎是件不可能[Nothing is impossible]的事, 但总有解决的办法,下面通过实现一个类或函数