结构体和类
本质区别: 类的本质是结构体,但是指针指向一个类 和指向一个结构体是不同的概念
例证:
nsstring (oc) 是类 ----- 指针指向是相当于浅拷贝
string (swift) 是结构体------指针指向是相当于深拷贝
测试代码如下(是测试了类能改变,结构体改变不了,从而得出上面结论)
// ViewController.swift
// 指针测试
//
// Created by Admin on 2017/12/29.
// Copyright © 2017年 刘普昌. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
var list = [bb]()
for index in 0...4 {
let b = bb.init(str: "\(index)")
list.append(b)
}
let change = list[0]
change.str = "ZHESHIDI!"
for index in 0...list.count-1 {
print(list[index].str!)
}
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
class bb {
init(str: String) {
self.str = str
}
var str: String?
}
}
控制台数据
ZHESHIDI!
1
2
3
4
网友评论