初识你---------Swift【下篇】
Swift中的结构体
Swift的结构体对比OC来说,可以添加初始化方法、可以遵守代理协议等,同时:Swift的Bool类型的变量也是一个结构体,所以只能选择true和false。
Swift中声明结构体的格式:
struct(关键字) + 结构体名字 {
结构体内部实现代码
}
上面是结构体声明的基本格式,不过结构体中可以不仅仅可以设置存储属性,还可以设置计算属性,除此之外还可以在其中声明结构体本身的属性
在Swift与OC的改变之处:
第一个变化就表现为在结构体内可以实现初始化的方法,并且在实现初始化方法的时候需要添加func标识
第二个变化就表现为在结构体中可以定义结构体的方法(函数变量)--------性质和类的方法一致【需要在前面使用static标识 在Swift中static并不表示在静态区声明一个变量【代表结构体方法】】
// 主要是用来存值的
struct Rect {
// 存储属性 :目的是用来存值的
var x : Float var y : Float var width : Float var height : Float
// 计算属性 : 专门计算存储属性的一个变量的
var centerX : Float { // 实现计算属性的get,set方法
// Swift中不能之定义setter方法,如果需要setter方法则需要实现getter方法之后在去实现setter
get{
return x + width /
} // Swift 里面set不能单独实现,必须要有get方法
set{
//newValue 新的值
centerX = newValue
}
// center是计算属性 : 里面存放一些set,get方法
// 声明实现了getset,及实例变量
} var centerY :Float { get{ return y + height/
} set{ centerY = newValue
} } // 声明一个结构体的属性
static var name : Float { get {
return
}
} // 结构体第一个变化: —— 可以实现初始化方法
// 在实现初始化方法的时候,不需要添加func标识
init(x : Float, y : Float, width : Float, height : Float)
{ self.x = x
self.y = y
self.width = width
self.height = height } // 结构体里面的函数
// 在结构体里面的函数名的前面加一个 mutating,表示可以函数里面修改结构体参数的值如果不加则在函数内部不可以修改
mutating func sayHello() { self.x = ; print("☀️初识你---------Swift【下篇】的更多相关文章
- Swift_初识Swift
初识Swift语言 Swift结合了C和OC的优点并且不受C兼容性的限制.Swift采用安全的编程模式并添加了很多新特性,这将是编程更简单,更灵活也更有趣,Swift是基于成熟而且倍受喜爱的Cocoa ...
- 初识 swift 封装轮播图
一.简介 换了一家公司.换了一个环境刚开始来公司自然不能有一丝一毫的放松,每天即使是没有什么工作也是看看这个博客.那个源码.尽量让自己更充实.慢慢的开始写几篇博客记录下自己遇到的一些问题和解决方法.其 ...
- swift初识
介绍: Swift是苹果2014年推出的全新编程语言,它继承了C语言.ObjC的特性,且克服了C语言的兼容性问题.Swift发展过程不仅保留了Objc很多语言特性,他也借鉴了多种现代化语言的特点,在其 ...
- 初识Swift中的值和引用,循坏引用、代理的注意点
1.0 在Swift中分有值类型和引用类型 Int .String . 结构体和枚举都属于值类型, 将值类型传递给方法是,将在内存中创建其副本,并传递这个副本:这样我们就可以随心所欲修改它,而不用担心 ...
- 初识 Swift编程语言(中文版)
前言 今天Apple公布了新的编程语言Swift.也提供了一本将近400页的 The Swift Programming Language(Swift编程语言). 尽管我没有开发人员账号.没法实际上机 ...
- Swift从入门到精通第八篇 - 方法 初识
方法(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 方法 结构体.枚举.类都可以定义方法(实例方法.类型方法) 实例方法(Instance Methods) 实例方法只能用实例 ...
- Swift从入门到精通第十一篇 - 初始化 初识
初始化(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 初始化 初始化是类.结构体.枚举生成实例的过程,为该类的每个存储属性设置初始值,有些在实例使用前的设置或初始化也可在此实现 ...
- Swift从入门到精通第十四篇 - 错误处理 初识
错误处理(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 错误表现和抛出 在 swift 中,错误由符合 Error 协议的类型值表示 // 示例 enum VendingMac ...
- Swift从入门到精通第十五篇 - 类型转换 初识
类型转换(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 类型转换 类型转换是检查实例类型的一种方法,或者检查来自类层级不同的父类或子类一个实例,用 is 和 as 操作符 为类 ...
随机推荐
- Oracle的model语句入门-转
Model语句是Oracle 10g的新功能之一. 本文通过一些简单的例子帮助理解Model语句的用法,复杂使用场景请参考其他文章. 环境:当然需要Oracle 10g以上,本人是在11g上测试的. ...
- Spring Boot 之 HelloWorld详解
摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “以前是人放狗看家,现在是狗牵着人散步” — 随笔 一.Spring Boot 自述 世界上最好 ...
- Second Day learning English
Today I have set my Microsoft word program, use it send documents to the blog site.
- Github的基本配置与使用
第一步:尝试创建SSH key ssh-keygen -t rsa -C xxxxx@gmail.com 默认在~/.ssh目录生成id_rsa与id_rsa.pub. -t代表密钥类型,常见的类型有 ...
- HTML单选按钮样式更换
<!DOCTYPE html > <html lang="en"> <head> <meta http-equiv="Conte ...
- Approvals for EBS 1.4 Now Available
If you haven't been following the excellent Workflow blog, you might have missed the announcement ab ...
- Arcgis报错: Bad login user Failed to execute (CreateEnterpriseGeodatabase).
在使用工具Create Enterprise Geodatabase的时候报错Bad login user,开始怀疑为密码错误,然后反复在plsql中尝试发现并没有错误,很疑惑,然后去官网查询: Er ...
- JavaScript 变量生命周期
变量在它声明时初始化. 局部变量在函数调用时创建,当函数执行完毕后销毁,这和为什么要使用闭包也有一点关系,当然这是另外的话题了. 全局变量在页面(当前页面)关闭后销毁.
- Surface Shader
Surface Shader: (1)必须放在SubShdader块,不能放在Pass内部: (2)#pragma sufrace surfaceFunction lightModel [option ...
- MySQL单机load过高问题讨论
有一个朋友问我: "hi,我想问下你们遇到单机load过高的情况 采取什么紧急措施啊?" 我问他是不是mysql db server? 他说是. 我给他如下建议: 1 先看下是不是 ...