Swift存储属性

//
//  main.swift
//  Swift存储属性
//
//  Created by Goddog on 15/7/19.
//  Copyright © 2015年 Goddog. All rights reserved.
//

import Foundation

print("存储属性是指存储在类、结构体里的变量或常量,可分为实例存储属性和类型存储属性,实例存储属性属于单个实例,类型存储属性属于类型本身")
print("枚举不能定义实例存储属性,只有类和结构体才能定义实例存储属性;")
print("上一节中结构体Size可以不指定初始值但是要声明为可选类型")
struct Size {
    var width: Int!
    var height: Int!
}
var s1 = Size()
var s2 = Size(width: 10, height: 20)

//MARK: - 实例存储属性与实例变量
//实例存储属性用于保存该类型的实例的状态数据
struct FixedLength
{
    var start: Int
    let length: Int    //定义常量存储属性,可以不指定初始值
}
 var rg = FixedLength(start: 2, length: 8)
print("开始:\(rg.start), 长度:\(rg.length)")
rg.start = 1   //变量可以重新赋值
//rg.length = 10  //常量不可重新赋值

//MARK: - 结构体常量与实例属性
struct Range
{
    //定义两个变量存储属性
    var start: Int
    var length: Int
}

let rge = Range(start: 1, length: 2)
print("起点:\(rge.start), 终点:\(rge.length)")
//rge.start = 3          //用let声明的rge实例是不可变的
//rge.length = 4

//MARK: - 延迟存储属性
//延迟存储属性指的是第一次被调用时候才会被计算初始值的属性,用lazy修饰符
class Dept
{
    var id: Int
    var info: String
    init(id: Int)
    {
        self.id = id
        //暂停2s
        NSThread.sleepForTimeInterval(2)
        self.info = "读取数据库"
    }
}

class User {
    var id: Int = 0
    lazy var dept = Dept(id: 10)  //延迟加载机制
    var nicks = [String]()   //数组
}

//创建user实例
var user = User()
user.nicks.append("曹操")
user.nicks.append("刘备")
user.nicks.append("孙权")
print(user.nicks)















Swift技术学习 https://www.itkc8.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值