博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
swift -- 类和结构体
阅读量:7100 次
发布时间:2019-06-28

本文共 1121 字,大约阅读时间需要 3 分钟。

1.类和结构体的语法定义

//类的定义

class Person {

    //声明属性 : 必须赋予初始值

    var name = ""

    var age : Int = 1

    //在类里面声明一个结构体类型的属性:结构体的对象必须初始化

    var frame : Frame = Frame.init()

}

 

//结构体的定义

struct Frame {

    //声明属性

    var point : Int = 1

    var rect : Int = 1

2.类和结构体实例

//类的实例化

var person1 = Person.init()

//结构体的实例化

var frame = Frame.init()

 3.访问属性

//类访问属性

person1.name = "wo"

//结构体访问属性

frame.point = 3

 4.类和结构体的 混合应用

person1.frame.point = 44

 5.结构体类型的成员 逐一构造器(类不存在逐一构造器)

let frame2 = Frame.init()

let frame3 = Frame.init(point: 1, rect: 2)  //能够给所有的属性赋值

let person2 = Person.init()    //类不存在逐一构造器

6.结构体 是值类型

//值类型特点: 当用一个值类型的对象给另一个对象赋值时,系统执行的是 拷贝 操作

var frame4 = Frame.init(point: 10, rect: 30)

var frame5 = frame4  //赋值 copy操作

 

frame4.point = 300

frame5.point = 400

print(frame4.point , frame5.point)    // 300   400

 

7.类 是引用类型

//引用类型的特点: 当用一个 引用类型的对象给另一个对象赋值时,系统只是做了指针改变指向的改变,内存中没有拷贝

var person3 = Person.init()

 person3.age = 100

var person4 = person3       //这两个对象 的 指向相同,没有拷贝操作

 print(person3.age , person4.age)    //  100

8.恒等运算符 === (3个等号)

//只能判断两个类创建的对象是否相同(比较的是内存地址)

if person3  === person4{

    print("相同")

}else{

    print("不同")

}

 

转载于:https://www.cnblogs.com/daxueshan/p/5585234.html

你可能感兴趣的文章
TOPCODER->Practice Room->SRAM 144 DIV 1 (550)
查看>>
mysql 远程连接速度慢的解决方案
查看>>
Code Formatter
查看>>
svn工具安装下载Tomcat源码以及导入eclipse
查看>>
javascript简介
查看>>
【后缀数组】【二分答案】poj3261
查看>>
【二维莫队】【二维分块】bzoj2639 矩形计算
查看>>
【DFS】bzoj2435 [Noi2011]道路修建
查看>>
敏捷开发--scrum
查看>>
SSO基于cas的登录
查看>>
Python之路【第二篇】:Python简介、解释器与编码
查看>>
Boxing
查看>>
一起学Android之GridView
查看>>
HBase笔记5(诊断)
查看>>
poj2092
查看>>
简单几何(极角排序) POJ 2007 Scrambled Polygon
查看>>
轻院1064加密字符
查看>>
ajx 发送json串(Request Payload格式)
查看>>
工资管理系统可行性分析人员分工
查看>>
BZOJ3781:小B的询问——题解
查看>>