swift结构体


struct Student {

//从宏观角度开,成为成员属性,实例属性

var age = 0

var height = 2

//添加方法 成为成员方法,实例方法

func study() {

print("无参无返回值")

}

//类型方法,类型属性 [类似于OC中的类方法]

static var weight = 0

static func eat() {

print("类型方法 eat")

}

//在结构体方法中,如果要修改属性的值,必须使用mutaing关键字修饰方法

mutating func modifyValue () {

age = 100;//不能修改属性的值 如果要修改属性的值,必须使用mutaing关键字修饰方法

}

}

//调用方法 定义结构体的实例

var stu = Student()

stu.age = 20

stu.height = 180

stu.study()

//

Student.weight = 10;

print(stu.age,"student.age")

//

Student.eat();

//结构体是值类型的,赋值给一个变量对象被修改,原对象不变

var stu1 = stu;

stu1.age = 30

print(stu.age, "stu1.age")

print(stu1.age, "stu1.age")

//在结构体中成员变量必须赋初值,可以在定义成员时直接赋值,也可以在构造方法中赋值

struct Point {

//x,y 赋值是,构造方法会报错,必须赋初值

//从属性的角度被称为存储属性

var x = 0

var y = 0

//结构体中默认有两个构造方法,一个不带参数,一个逐一赋值

//构造方法可以实现成员方的初始化操作

init() {

x = 0

}

// init(x : Int) {

// self.x = x

// }

//逐一构造方法

init(x : Int, y :Int) {

self.x = x

self.y = y

}

}

var p = Point() //等价于

var p1 = Point.init()

struct Size {

var width = 0

var height = 0

}

//矩形结构体

struct Rect {

var p = Point(x: 2, y: 2);

var s = Size()

//计算属性 [可以只有个getter 或两者都有 不能只要setter

var center : Point {

get {

var temp = Point()

temp.x = p.x + s.width/2

temp.y = p.y + s.height/2

return temp

}

// set(newCenter) {

// p.x = newCenter.x - s.width/2

// p.y = newCenter.y - s.height/2

// }

//newValue 是结构体内部的值,不写参数时,用newValue

set {

p.x = newValue.x - s.width/2

p.y = newValue.y - s.height/2

}

}

//属性监视器

var observValue: Int = 0{

willSet {

//将要设置值的

print("将要修改")

}

didSet {

//已经修改

print("已经修改")

}

}

}

var rect = Rect()

rect.p = Point(x: 2, y: 2)

rect.s = Size(width: 100, height: 100)

let center = rect.center;

print(center)

rect.center = Point(x: 60, y: 60)

print(rect.p)

rect.observValue = 100

优质内容筛选与推荐>>
1、小爬爬6.scrapy回顾和手动请求发送
2、js实现图片放大缩小后进行的复杂排序
3、19. 删除链表的倒数第N个节点
4、mobile app & ppi & dpi & px
5、IntelliJ IDEA 下的svn配置及使用的非常详细的图文总结


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号