swift - 基础属性 - 属性写法
var num1 : Int = 0 var num2 : Int = 5 /// 1.计算属性
var num3 : Int{
return num1 + num2
} /// 2.闭包属性
private lazy var num4 : Int = {
return num1 + num2
}() override func viewDidLoad() {
super.viewDidLoad()
print(num3)
print(num4)
}
2.类属性
class Student: NSObject {
/// 类属性
static var score : Int = 0
} override func viewDidLoad() {
super.viewDidLoad() Student.score = 1
print(Student.score)
}
3. 对象属性赋值
class Student: NSObject { var age:Int = 0 ///可选属性: name1 和name2一个意思
var name1:String?
var name2:String? = nil
} let stu = Student()
stu.age = 10
stu.name1 = "1蛋"
stu.name2 = "2蛋"
print(stu.age) /// 可选属性 解包写法1
if let name = stu.name1{
print(name)
} /// 可选属性 解包写法2
guard let name2 = stu.name2 else { return }
print(name2)
/// 可选属性 解包写法3
print(stu.name1 ?? "")
4.构造函数: init(){} 是系统默认的构造函数
自定义构造函数:A> 旧语法 可以在 init的()里面直接写上新参数,B>: 在目前3.0后需要加上convenienceclass
class Student: NSObject { var age:Int = 0 ///可选属性: name1 和name2一个意思
var name1:String?
var name2:String? = nil /// 系统默认构造函数: 不需要写 self.init(),但是没啥用
override init() {
self.name1 = "0"
} /**自定义构造函数
* age 和 age1一样,
* 使用conveniences需要写上self.init()
*/
init(age:Int, name:String) {
self.age = age
self.name1 = name
} convenience init(age1:Int, name1:String) {
self.init()
self.age = age1
self.name1 = name1
} /**2.传入字典
* dict,dict1,dict2,dict3一样,
* dict2,dict3在使用时还是字典使用[String:Any]
*/
init(dict:[String:Any]) {
self.age = dict["age"] as? Int ?? 0
self.name1 = dict["name1"] as? String ?? ""
} convenience init(dict1:[String:Any]) {
self.init()
self.age = dict1["age"] as? Int ?? 0
self.name1 = dict1["name1"] as? String ?? ""
} init(dict2:Dictionary<String, Any>) {
self.age = dict2["age"] as? Int ?? 0
self.name1 = dict2["name1"] as? String ?? ""
} convenience init(dict3:Dictionary<String, Any>) {
self.init()
self.age = dict3["age"] as? Int ?? 0
self.name1 = dict3["name1"] as? String ?? ""
} } let tempStu = Student(age: 10, name: "tempStu")
print("tempStu",tempStu.name1 ?? "", tempStu.age)// tempStu tempStu 10 let tempStu1 = Student(age1: 11, name1: "tempStu1")
print("tempStu1",tempStu1.name1 ?? "", tempStu1.age)// tempStu1 tempStu1 11 let stu = Student(dict: ["age":18, "name1":"stu"])
print("dict",stu.name1 ?? "", stu.age)// dict stu 18 let stu1 = Student(dict1: ["age":18, "name1":"stu1"])
print("dict1",stu1.name1 ?? "", stu1.age)//dict1 stu1 18 let stu2 = Student(dict2: ["age":18, "name1":"stu2"])
print("dict2",stu2.name1 ?? "", stu2.age)//dict2 stu2 18 let stu3 = Student(dict3: ["age":18, "name1":"stu3"])
print("dict3",stu3.name1 ?? "", stu3.age)//dict3 stu3 18
swift - 基础属性 - 属性写法的更多相关文章
- 原创:新手布局福音!微信小程序使用flex的一些基础样式属性
来源:新手布局福音!微信小程序使用flex的一些基础样式属性 作者:Nazi Flex布局相对于以前我们经常所用到的布局方式要好的很多,在做微信小程序的时候要既能符合微信小程序的文档开发要求,又能 ...
- python基础——实例属性和类属性
python基础——实例属性和类属性 由于Python是动态语言,根据类创建的实例可以任意绑定属性. 给实例绑定属性的方法是通过实例变量,或者通过self变量: class Student(objec ...
- 李洪强iOS开发Swift篇—09_属性
李洪强iOS开发Swift篇—09_属性 一.类的定义 Swift与Objective-C定义类的区别 Objective-C:一般需要2个文件,1个.h声明文件和1个.m实现文件 Swift:只需要 ...
- css复合属性的写法
# 复合属性也称为 "shortcut" property (快捷属性),它作用是为了简化代码,提高页面运行的效率. # 下面的内容会介绍 2 个比较常用的复合属性 "f ...
- 重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试
原文:重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试 [源码下载] 重新想象 Windows 8 Store ...
- 【CSS】 CSS基础知识 属性和选择
css基础知识 html的基本标签都是千篇一律的,为了能够个性化外观,就需要进行样式的调整,而css就是专门用来维护,管理样式的一种格式.在html中定义css有三种方法 1. 为标签添加style属 ...
- swift 学习- 11 -- 属性
// '属性'将值跟特定的类, 结构体或枚举关联, 存储属性常量或变量作为实例的一部分,而计算属性计算(不是存储) 一个值, 计算属性可以用于 类, 结构体, 枚举, 存储属性只能用于 类 和 结构体 ...
- CSS基础以及属性
一.CSS 偷个懒,啥是CSS我就不介绍啦 二.CSS语法 CSS语法:选择符{属性:属性值:属性:属性值:}选择符表示要定义样式的对象,可以是元素本身,也可以是一类元素或者制定名称的元素.属性:属性 ...
- 前端基础-CSS属性操作
前端基础-CSS属性操作 css text 文本颜色:color 颜色属性被用来设置文字的颜色. 颜色是通过CSS最经常的指定: 十六进制值 - 如: #FF0000 一个RGB值 - 如: RGB( ...
- vue基础---计算属性和侦听器
[一]计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div id="example"> ...
随机推荐
- DataGrip 连接数据库查询出来的结果乱码的问题
打开连接数据源选项 选择 Advanced----Charset 填入 GBK 应用即可 目前遇到的是连接 SYbase数据库
- 修改 计算机名后,修改SQLserver 注册服务器对象的名称,及登陆名
select @@ServerName --查看当前所有数据库服务器名称select * from Sys.SysServers --修改数据库服务器名称sp_dropserver 'old_serv ...
- php装curl拓展出错
错误: checking for cURL in default path... not found checking for cURL 7.10.5 or greater... ./configur ...
- U3D中可以直接使用GL!!!
https://blog.csdn.net/u013172864/article/details/78860624
- Glide4 高效加载图片的配置【转】
原文: Glide4 高效加载图片的配置 https://www.jianshu.com/p/a079713f280f
- C# 模拟多线程下载文件
原地址:http://www.cnblogs.com/Opiece/p/4803836.html 客户端 public static string strContent = ""; ...
- R语言-直方图
1.直方图 直方图和柱形图的区别:直方图表示频数,柱形图表示数量. 一般直方图的X轴表示取值范围,Y轴表示频数 hist() 函数 > hist(rnorm(1000)) #1000个正态随机数 ...
- elasticsearch 测试
https://www.yiibai.com/elasticsearch/elasticsearch-getting-start.html # curl -XPUT "http://loca ...
- org注释包
1.注释包 物种 OrgDB 按蚊(Anopheles) org.Ag.eg.db 拟南芥(Arabidopsis) org.At.tair.db 牛(Brovine) org.Bt.eg.db 蠕虫 ...
- Python基础之-----------函数
---恢复内容开始--- 函数:在其他的语言中,我们也经常听到函数的概念,那么什么是函数呢?在Java中叫做method: 定义:函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函 ...