美文网首页程序员swift
swift学习-类,结构的属性-12/25

swift学习-类,结构的属性-12/25

作者: littlersmall | 来源:发表于2016-01-04 23:55 被阅读45次

今天周五。基本的任务都已完成,swift学习也顺利了许多。
今天发现一本基于swift2.0的教材,比我原来看的那边要更新,而且更薄一点,就以这本书为主继续学吧。目前看到118页。
中午上ios论坛,又发现一本讲ios开发框架的书,以swift为基础,只有50页,看完了这本,大概就可以正式开始我的游戏开发了。
1 类和结构
所有的结构体都有一个自动生成的成员逐一初始化器,用于初始化新结构体实例中成员的属性。新实例中给个属性可以通过属性的名称传递到成员逐一初始化器中。
例如:

struct Resolution {
    var width = 0
    var height = 0
}

var resolution = Resolution() //赋默认值
var resolution1 = Resolution(width: 3, height: 4)

注:与结构体不同,类实例没有默认的成员逐一初始化器。
2 结构体和枚举都是值类型。值类型被赋值给一个变量,常数,或者被传递给一个函数时,实际上操作的是其的拷贝。
在swift中,所有的基本类型:整数,浮点数,布尔值,字符串,数组,字典都是值类型,并且都是以结构体的形式在后台实现的。
所有的结构体的枚举都是值类型,这意味着它们的实例,以及实例中包含的任何值类型属性,在代码中传递的时候都会被复制。
注意:这点和python完全不同,需要特别注意。
「===」恒等运算符,判断两个常量或者变量是否引用同一个实例。
「!==」
3 延迟存储属性。使用lazy修饰的属性为延迟加载属性,只有在第一次访问时才会创建

class DataImporter {
    var fileName = "1.txt"
}

class DataManager {
    lazy var importer = DataImporter() //不可以用let声明
    var data = [String]()
}

let manager = DataManager()

manager.data.append("123")
print(manager.importer.fileName) //只有在第一次访问时才会创建

4 计算属性。除了存储属性外,swift还提供了计算属性。计算属性本身并不存储值,但是提供一种get和set方法来获得值,或设置其他属性的值。
例如:

struct Point {
    var x = 0.0
    var y = 0.0
}

struct Size {
    var width = 0.0
    var height = 0.0
}

struct Rect {
    var origin = Point()
    var size = Size()
    var center: Point {
        get {
            return Point(x: origin.x + 2, y: origin.y + 2)
        }

        set(newPoint) {                       //便捷写法 set {  origin.x = newValue.x ….}
            origin.x = newPoint.x
            origin.y = newPoint.y
        }
    }
}

var square = Rect()

print(square.center)

square.center = Point(x: 1, y: 3)

print(square.origin)

明天又是周末了。
虽然还是有雾霾,还是蛮开心的。

相关文章

  • swift学习-类,结构的属性-12/25

    今天周五。基本的任务都已完成,swift学习也顺利了许多。今天发现一本基于swift2.0的教材,比我原来看的那边...

  • Swift学习-进阶02

    swift对象本质,一个swift的对象默认占用16字节大小,在内存中的结构: swift类结构: 属性 存储属性...

  • swift-类属性

    了解属性之前,需要先了解前面的swift-类结构内容 - swift-类结构源码探寻[https://www.ji...

  • Swift:基础(二十)属性

    Swift 属性 Swift 属性将值跟特定的类、结构或枚举关联。 属性可分为存储属性和计算属性: 存储属性和计算...

  • 属性

    存储属性其实Swift中的存储属性就是以前学习OC中的普通属性, 在结构体或者类中定义的属性, 默认就是存储属性*...

  • Swift 学习笔记(三)

    Swift属性 Swift属性将值跟特定的类,结构体,枚举关联。分为存储属性和计算属性,通常用于特定类型的实例。属...

  • swift4.0-11 类和结构体

    代码学习swift4.0, 类和结构体 //// main.swift// SwiftLearn11-类和结构...

  • Swift5.x-属性(中文文档)

    引言 继续学习Swift文档,从上一章节:结构体和类,我们学习了Swift结构体和类相关的内容,如结构体和类的定义...

  • Swift学习:属性

    本篇将详细总结介绍Swift属性的用法;属性是与特定的Swift类、结构体、枚举相关联的值;与其他语言相比,属性不...

  • Swift Tour Learn (六) -- Swift 语法

    Swift语法基础(五)-- (类和结构体、属性、方法) 本章将会介绍 类和结构体对比结构体和枚举是值类型类是引用...

网友评论

    本文标题:swift学习-类,结构的属性-12/25

    本文链接:https://www.haomeiwen.com/subject/steahttx.html