加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift 2.0 值类型 和 引用类型

发布时间:2020-12-14 01:44:19 所属栏目:百科 来源:网络整理
导读:// 2. 值类型 引用类型 //----- 结构体变量 属于 值类型。相当于 copy //------ 类对象 属于 引用类型。相当于 strong struct Point{ var x: Int var y: Int } var point_99 = Point (x: 2 ,y: 6 ) print ( " 第一次初始化的点 ( point_99 )" ) // 这里的

// 2.值类型 & 引用类型

//-----结构体变量 属于 值类型。相当于copy

//------类对象 属于 引用类型。相当于strong

struct Point{

var x: Int

var y: Int

}


var point_99 = Point(x: 2,y: 6)

print("第一次初始化的点 (point_99)")

//这里的直接赋值,相当于是把point_99 拷贝一份,把拷贝的那份给point_100,所以当之后修改point_99的值时,是不会影响point_100的。就像我们去打印东西一样,打印结束后,无论你怎么修改原稿,我们手头copy到的那份是不会有任何改动的,除非你再重新打印一遍。

var point_100 = point_99

point_99.x = 100

point_99.y = 100


print("通过直接赋值 (point_100)")



class Point_Point {

var x: Int

var y: Int

init(x: Int,y: Int){

self.x = x

self.y = y

}

}


var point_point = Point_Point(x: 23,y: 22)


print("第一次通过类初始化的值: (point_point.x) (point_point.y)")


//但是这里的直接赋值就不一样了。这里是相当于point_point_00这个对象指向了point_point指向的那块内存。所以,当下一次再改动point_point指向的内容时,point_point_00里的内容也是跟着变动的。

var point_point_00 = point_point


point_point.x = 100

point_point.y = 100


第二次通过属性修改的值: (point_point_00.x) (point_point_00.y)")

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读