为了初始化结构体和类等类型的实例属性。
默认构造器
- struct Fahrenheit {
- var temperature: Doubleinit(){
- temperature = 32.0
- }
- }
var f = Fahrenheit() //调用默认构造器 init() ,没有参数 没有返回值。
- println("The default temperature is \(f.temperature)°Fahrenheit")
- // prints "The default temperature is 32.0° Fahrenheit"
自定义构造器
定义类两个构造器:init(fromFahrenheit:) 和init(fromKelvin:)
- struct Celsius {
- var temperatureInCelsius: Double = 0.0
- init(fromFahrenheit fahrenheit: Double) {
- temperatureInCelsius = (fahrenheit - 32.0)
- / 1.8
- }
- init(fromKelvin kelvin: Double) {
- temperatureInCelsius = kelvin -273.15
- }
- }
- let boilingPointOfWater = Celsius(fromFahrenheit:212.0)
- // boilingPointOfWater.temperatureInCelsius is 100.0
- let freezingPointOfWater =Celsius(fromKelvin:273.15)
- // freezingPointOfWater.temperatureInCelsius is 0.0
析构器(Deinitializer)
析构器与构造器相反,在对象释放时候调用。 使用关键字 deinit,语法如下:
- deinit {
- // perform thedeinitialization
- }
实例:
- class Player {
- var coinsInPurse:Int init(coins: Int) {
- println("call init")
- coinsInPurse= coins
- }
- func winCoins(coins: Int) {
- coinsInPurse+= 10
- }
- deinit {
- coinsInPurse = 0
- }
- }
- var playerOne: Player? = Player(coins: 100)
- println("coinsInPurse : \(playerOne!.coinsInPurse)
- coins")
- playerOne = nil
- println("PlayerOne has leftthe game")
Swift交流讨论论坛论坛:http://www.cocoagame.net
欢迎加入Swift技术交流群:362298485
相关推荐
在Swift中,构造函数(也称为初始化器)负责设置新实例的初始状态,并确保所有必要的属性都被赋予了适当的值。理解并熟练掌握Swift的构造函数对于编写健壮且可维护的代码至关重要。 一、初始化器的类型 1. 默认...
swift-init-generator, 使用 Swift 解析器生成初始化器的Xcode插件 swift-init-generator使用 Swift 解析器生成初始值设定项在选择包含变量声明的行之后,运行扩展命令生成相应的初始化器。示例 安装下载应用程序...
在iOS开发中,Swift与Cocoa Touch框架紧密集成,让你可以充分利用UIKit库来构建用户界面。Swift还支持Apple的Playgrounds,这是一个交互式学习环境,允许开发者实时查看代码执行结果,大大加快了学习和调试的速度。 ...
Swift 支持两种类型的初始化器:指定初始化器(Designated Initializer)和便捷初始化器(Convenience Initializer)。 #### 16. nil 值处理 Swift 引入了可选类型来处理值可能不存在的情况。了解如何优雅地处理 `...
Swift 通常使用初始化器(initializer)语法创建空数组和空字典。例如:let emptyArray = String[](); let emptyDictionary = Dictionary, Float>()。如果类型信息已知,则可以使用 [] 声明空数组。 Swift 语言的...
Swift 中有三种类型的初始化器:指定初始化器(designated initializer)、便利初始化器(convenience initializer)和必需初始化器(required initializer)。其中: - **指定初始化器**:负责完成所有必要的初始...
6.4 Overriding a Failable Initializer (重写一个失败构造器) 我们可以在一个子类里面重写父类的失败构造器,就像重写其他构造器那样,这样以来可以用子类的非失败构造器来重写父类里面的失败构造器。要想重写一个...
Swift还支持getter和setter方法来访问或设置属性,以及初始化器(Initializer)来初始化新创建的类实例。 四、实例化与继承 要创建类的实例,我们需要使用`init`关键字来定义初始化器,并通过`let`或`var`关键字...
6. 类和对象:Swift支持面向对象编程,包括类(class)、继承、初始化器(initializer)和属性(property)。 7. 协议与扩展:协议定义了一组要求,而扩展(extension)则允许为现有的类型添加功能,无需修改原始...
解决Anolis(龙蜥),解决System.TypeInitializationException: The type initializer for ‘Gdip’ threw an exception.
在“战舰游戏”的上下文中,本节探讨了如何为游戏中的类添加初始化器(Initializer)。初始化器负责为实例属性设置初始值,并确保对象处于适当的状态。 #### Type Methods, Guards and String Interpolation #####...
内网中连接不上https://start.spring.io,搭建\https://start.spring.io一样的服务器。 initializr-service-0.7.0.BUILD-SNAPSHOT.jar
initializer-list分析
SwiftInitializerGenerator 是一个专为Xcode 8设计的源代码扩展,它简化了Swift开发者创建初始化器(Initializer)的过程。这个扩展是针对那些在Swift编程中频繁遇到初始化多个实例变量时,想要快速生成初始化代码的...
dry-initializer, 使用参数和选项构建类初始值设定项的DSL 干初始值设定项 使用参数和选项构建类初始值设定项的DSL 。安装将此行添加到你的应用程序的Gemfile中:gem 'dry-initializer'然后执行:$ bundle
`initializer_list`可以用于构造函数中,接收一组逗号分隔的初始值,如: ```cpp std::vector<int> vec = {1, 2, 3, 4, 5}; ``` 在上面的示例中,`vec`被初始化为包含5个整数的向量。此外,`std::initializer_list...
- 初始化器(Initializer) - 属性(Property):计算属性、存储属性 - 方法(Method) - 下标(Subscript) - 协议遵循(Conformance to Protocols) - 泛型(Generics) 3. **Swift高级特性**: - 可选链...
这些只是Swift语言中的一部分精华,Swift还有许多其他特性,如类型系统、泛型、协议与扩展、解构、异步编程等,它们共同构建了Swift的强大功能和高效开发体验。不断学习和实践Swift,能够帮助开发者编写出更安全、更...
initializer10-5初始化只读数据10-6在构造器中使用out与ref10-7struct构造器10-7-1struct构造器的限制10-8static构造器10-8-1使用static构造器初始化静态成员10-8-2static构造器的限制10-9对象与内存10-9-l对象的...