Swift -- 结构体和类
Swift -- 结构体和类
上官尘 发表于2年前
Swift -- 结构体和类
  • 发表于 2年前
  • 阅读 24
  • 收藏 0
  • 点赞 1
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

摘要: Swift中结构体和类异同点以及简单应用

一:语法定义

swift中结构体和类的结构是相同的,通过关键字和一对大括号来区别。

class SomeClass {
    // 关键字class表示定义一个类
}
struct SomeStructure {
    // 关键字struct表示定义一个结构体
}
/*
Swift 中类和结构体有很多共同点。共同处在于:
定义属性用于存储值
定义方法用于提供功能
定义附属脚本用于访问值
定义构造器用于生成初始化值
通过扩展以增加默认实现的功能
实现协议以提供某种标准功能
*/


//定义一个frame结构体
struct frame {
    var width:Double = 0.0
    var height:Double = 0.0
}
//访问结构体
var r = frame()
print("width = \(r.width) height = \(r.height)")
//如果结构体没有初始值,可以给他赋值
r.width = 11
r.height = 22

//类
class Rect {
    var width:Double = 0.0
    var height:Double = 0.0
    func show() -> Void{
        print("width = \(width) height = \(height)")
    }
}
// 类没有逐一构造器
//var r1 = Rect(width: 10.0, height: 10.0)
var r1 = Rect()
r1.show()
var r2 = r1
r2.show()
// 类是引用类型, 结构体之间的赋值其实是将r2指向了r1的存储控件, 所以他们是两个只想同一块存储空间, 修改其中一个会影响到另外一个
r1.width = 99
r1.show()
r2.show()

二:结构体构造器

struct Rect2 {
    var width:Double
    var height:Double = 0.0
}
//逐一构造器,顺序必须和结构体成员顺序一致,必须包含所有的成员
var r1 = Rect2(width: 10.0, height: 10.0)

三:结构体中定义方法

struct Rect3 {
    var width:Double
    var height:Double = 0.0
    // 给结构体定义一个方法, 该方法属于该结构体
    // 结构体中的成员方法必须使用某个实例调用
    // 成员方法可以访问成员属性
    func getWidth() -> Double{
        return width
    }
}

var r2 = Rect3(width: 10.0, height: 20.0)
// 结构体中的成员方法是和某个实例对象绑定在一起的, 所以谁调用, 方法中访问的属性就属于谁
print(r2.getWidth())

var r3 = Rect3(width: 30.0, height: 20.0)
// 取得r2这个对象的宽度
print(r3.getWidth())


共有 人打赏支持
粉丝 6
博文 38
码字总数 9881
×
上官尘
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: