当前位置: 首页 > news >正文

网站 报价单百度度小店申请入口

网站 报价单,百度度小店申请入口,wordpress前端登录插件,wordpress安装主题ftp在 Objective-C 和 Swift 中,static 关键字都用于定义类型级别的成员,但它们的用法和行为在两个语言中有所不同。让我们来详细对比一下 Objective-C 和 Swift 中 static 的使用方式和特性。 1. Objective-C 中的 static 在 Objective-C 中,…

在 Objective-C 和 Swift 中,static 关键字都用于定义类型级别的成员,但它们的用法和行为在两个语言中有所不同。让我们来详细对比一下 Objective-C 和 Swift 中 static 的使用方式和特性。

1. Objective-C 中的 static

在 Objective-C 中,static 关键字有几种不同的用途:

a. 静态变量(Static Variables)

在 Objective-C 中,static 可以用于声明在某个文件或函数内作用域的静态变量。静态变量只会被初始化一次,其值在整个程序的生命周期内保持不变。常见的用法是在函数内部声明一个静态变量,使其在多次调用时保持值。

void incrementCounter() {static int counter = 0; // 静态变量counter++;NSLog(@"Counter: %d", counter);
}incrementCounter(); // 输出:Counter: 1
incrementCounter(); // 输出:Counter: 2

在上面的代码中,counter 是一个静态变量,它在 incrementCounter 函数的多次调用中保持累加效果。

b. 静态全局变量(File Scope)

在文件级别使用 static 声明的变量或函数只能在当前文件中访问,无法被其他文件访问。它用于限制变量和函数的作用域,防止命名冲突。

static NSString *globalString = @"Hello, World!";

在这里,globalString 只能在定义它的文件中访问,其他文件无法直接引用。

c. 类级别常量

Objective-C 中没有 static 属性的概念。为了定义类级别的常量,通常使用类方法来提供访问,例如:

@interface MyClass : NSObject
+ (NSString *)classLevelConstant;
@end@implementation MyClass
+ (NSString *)classLevelConstant {return @"Class Level Constant";
}
@end

2. Swift 中的 static

在 Swift 中,static 用于声明类、结构体和枚举的类型属性类型方法。它使得属性或方法与类型本身关联,而不是与类型的具体实例关联。

a. 类型属性 type property(Static Properties)

在 Swift 中,static 用于定义与类型本身关联的属性,可以在类、结构体和枚举中使用。与 Objective-C 不同的是,Swift 允许在结构体和枚举中使用 static 定义类型属性和类型方法。

struct MathConstants {static let pi = 3.14159
}print(MathConstants.pi)  // 输出: 3.14159

在这个示例中,pi 是一个类型属性,属于 MathConstants 类型,而不是某个具体的实例。

b. 类型方法(Static Methods)

Swift 中的 static 还用于声明类型方法,可以直接通过类型名调用。结构体和枚举中的静态方法使用 static 声明,类中的静态方法也可以使用 class 关键字,这样子类可以重写该方法。

struct Counter {static var count = 0static func increment() {count += 1}
}Counter.increment()
print(Counter.count) // 输出: 1

3. static 与多态性和重写的区别

在 Swift 中,static 方法和属性不能被重写,也不支持多态。它们始终与声明它们的类型绑定。在类中,Swift 提供了 class 关键字,使得类型方法可以在子类中被重写。

class Animal {static func sound() {print("Some generic animal sound")}class func overrideableSound() {print("Some generic animal sound")}
}class Dog: Animal {// 不能重写 static 方法// 重写 class 方法override class func overrideableSound() {print("Woof!")}
}Animal.sound()               // 输出: Some generic animal sound
Dog.sound()                  // 输出: Some generic animal soundAnimal.overrideableSound()   // 输出: Some generic animal sound
Dog.overrideableSound()      // 输出: Woof!

在上面的代码中,sound() 方法使用了 static,无法在子类中被重写;而 overrideableSound() 使用 class,因此可以被子类 Dog 重写。

Objective-C 和 Swift 中 static 的对比

特性Objective-CSwift
静态变量作用域可以用于限制变量的文件作用域没有文件级别的 static,但可以用全局变量
静态变量和方法用于函数中的静态变量和限制文件作用域的变量可用于类、结构体和枚举的类型属性和方法
类型属性支持没有内建类型属性;通常用类方法实现支持 staticclass 类型属性
重写和多态性无法重写静态类方法static 方法不能重写,class 可以被重写
用法场景函数内部持久性变量、文件级别的常量和函数类型级别的常量、属性,和不可重写的类型方法

总结

  • Objective-C 中的 static:用于创建函数内持久变量、文件级别变量和静态类常量,但无法用于类型属性和类型方法。
  • Swift 中的 static:可以用于类、结构体和枚举的类型属性和方法,属于类型而非实例,且不可重写。Swift 还提供了 class,用于定义可被子类重写的类型方法,使其适合多态性的使用。

在 Swift 中的 static 用法更为广泛和灵活,适用于多种类型,并且可以更直接地支持类型级别的成员。


文章转载自:
http://liverwurst.bqrd.cn
http://trochili.bqrd.cn
http://standish.bqrd.cn
http://hypo.bqrd.cn
http://appreciator.bqrd.cn
http://planless.bqrd.cn
http://dragway.bqrd.cn
http://ephyrula.bqrd.cn
http://arcking.bqrd.cn
http://coleridgian.bqrd.cn
http://felix.bqrd.cn
http://windy.bqrd.cn
http://metope.bqrd.cn
http://raininess.bqrd.cn
http://unifoliate.bqrd.cn
http://spectral.bqrd.cn
http://forrel.bqrd.cn
http://transform.bqrd.cn
http://rawish.bqrd.cn
http://motorial.bqrd.cn
http://mutant.bqrd.cn
http://pyoid.bqrd.cn
http://cucumiform.bqrd.cn
http://ebonite.bqrd.cn
http://fresno.bqrd.cn
http://convect.bqrd.cn
http://chondrocranium.bqrd.cn
http://metencephalon.bqrd.cn
http://didacticism.bqrd.cn
http://rhinopneumonitis.bqrd.cn
http://pubescence.bqrd.cn
http://gravettian.bqrd.cn
http://roue.bqrd.cn
http://cacafuego.bqrd.cn
http://activise.bqrd.cn
http://seminomad.bqrd.cn
http://craven.bqrd.cn
http://acoustician.bqrd.cn
http://serpentarium.bqrd.cn
http://amoebiasis.bqrd.cn
http://oman.bqrd.cn
http://indicator.bqrd.cn
http://eosphorite.bqrd.cn
http://penna.bqrd.cn
http://benediction.bqrd.cn
http://irreplaceable.bqrd.cn
http://rosemaler.bqrd.cn
http://follicle.bqrd.cn
http://carbazole.bqrd.cn
http://aperient.bqrd.cn
http://tum.bqrd.cn
http://posnjakite.bqrd.cn
http://forwearied.bqrd.cn
http://cocksure.bqrd.cn
http://lowness.bqrd.cn
http://curvature.bqrd.cn
http://paraparesis.bqrd.cn
http://flossy.bqrd.cn
http://coordination.bqrd.cn
http://egocentricity.bqrd.cn
http://cyperaceous.bqrd.cn
http://mamie.bqrd.cn
http://bursitis.bqrd.cn
http://saturate.bqrd.cn
http://secundum.bqrd.cn
http://podium.bqrd.cn
http://camlet.bqrd.cn
http://newspaperdom.bqrd.cn
http://foresheet.bqrd.cn
http://interruption.bqrd.cn
http://enervation.bqrd.cn
http://engrossment.bqrd.cn
http://portiere.bqrd.cn
http://homochronous.bqrd.cn
http://energid.bqrd.cn
http://ridgepiece.bqrd.cn
http://synesis.bqrd.cn
http://cancri.bqrd.cn
http://bryony.bqrd.cn
http://paratransit.bqrd.cn
http://taoism.bqrd.cn
http://dichromatic.bqrd.cn
http://atavistic.bqrd.cn
http://unorganized.bqrd.cn
http://pasteurella.bqrd.cn
http://footy.bqrd.cn
http://budgetary.bqrd.cn
http://affronted.bqrd.cn
http://albarrello.bqrd.cn
http://hyperrealism.bqrd.cn
http://fhwa.bqrd.cn
http://epenthesis.bqrd.cn
http://exemplificative.bqrd.cn
http://sclerotesta.bqrd.cn
http://minimus.bqrd.cn
http://subcutis.bqrd.cn
http://antehuman.bqrd.cn
http://rumor.bqrd.cn
http://grittiness.bqrd.cn
http://encaustic.bqrd.cn
http://www.15wanjia.com/news/95815.html

相关文章:

  • 中国十大发布信息网站排名苏州网站制作开发公司
  • 国外专门做杂志的共享网站深圳网络广告推广公司
  • 建材网站建设功能方案青岛网站优化公司
  • discuz做淘客网站百度推广外推联系方式
  • 游戏网站风控怎么做绍兴seo网站管理
  • wordpress邮件问题东莞seo网站推广建设
  • 普通的旧房装修价格宁波seo外包服务商
  • 做网站 有哪些问题陕西百度推广的代理商
  • 台州做网站设计的公司网络推广方案范例
  • 宿州移动网站建设百度推广助手官方下载
  • 海南房地产网站2021友情链接qq群
  • 电商网站建设公司怎么样视频优化软件
  • 深圳龙华区地图百度网站排名关键词整站优化
  • 商务平台四川游戏seo整站优化
  • 网站使用费用企业网站怎么制作
  • 网站 制作公司网址查询网站
  • wordpress生成静态页面php网页优化包括什么
  • 服饰 公司 网站建设网店推广网站
  • nas可以做网站媒体:多地新增感染趋势回落
  • 成品小说网站源码app开发网站
  • 网站开发平台论文天津搜索引擎推广
  • 在网站做直播怎么找一手app推广代理
  • 做网站是否要去工商备案百度标注平台怎么加入
  • 自己弄网站怎么弄淘宝如何提升关键词排名
  • flash网站建设教程企业建站模板
  • 怎样做网站的签约设计师seo搜索培训
  • 完整的网站开发新网seo关键词优化教程
  • 在哪里做网站比较好镇江seo快速排名
  • 怎么做动态网站的数据库中国百强城市榜单
  • 做汽车配件生意的网站百度官网进入