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【下篇】的更多相关文章

  1. Swift_初识Swift

    初识Swift语言 Swift结合了C和OC的优点并且不受C兼容性的限制.Swift采用安全的编程模式并添加了很多新特性,这将是编程更简单,更灵活也更有趣,Swift是基于成熟而且倍受喜爱的Cocoa ...

  2. 初识 swift 封装轮播图

    一.简介 换了一家公司.换了一个环境刚开始来公司自然不能有一丝一毫的放松,每天即使是没有什么工作也是看看这个博客.那个源码.尽量让自己更充实.慢慢的开始写几篇博客记录下自己遇到的一些问题和解决方法.其 ...

  3. swift初识

    介绍: Swift是苹果2014年推出的全新编程语言,它继承了C语言.ObjC的特性,且克服了C语言的兼容性问题.Swift发展过程不仅保留了Objc很多语言特性,他也借鉴了多种现代化语言的特点,在其 ...

  4. 初识Swift中的值和引用,循坏引用、代理的注意点

    1.0 在Swift中分有值类型和引用类型 Int .String . 结构体和枚举都属于值类型, 将值类型传递给方法是,将在内存中创建其副本,并传递这个副本:这样我们就可以随心所欲修改它,而不用担心 ...

  5. 初识 Swift编程语言(中文版)

    前言 今天Apple公布了新的编程语言Swift.也提供了一本将近400页的 The Swift Programming Language(Swift编程语言). 尽管我没有开发人员账号.没法实际上机 ...

  6. Swift从入门到精通第八篇 - 方法 初识

    方法(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 方法 结构体.枚举.类都可以定义方法(实例方法.类型方法) 实例方法(Instance Methods) 实例方法只能用实例 ...

  7. Swift从入门到精通第十一篇 - 初始化 初识

    初始化(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 初始化 初始化是类.结构体.枚举生成实例的过程,为该类的每个存储属性设置初始值,有些在实例使用前的设置或初始化也可在此实现 ...

  8. Swift从入门到精通第十四篇 - 错误处理 初识

    错误处理(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 错误表现和抛出 在 swift 中,错误由符合 Error 协议的类型值表示 // 示例 enum VendingMac ...

  9. Swift从入门到精通第十五篇 - 类型转换 初识

    类型转换(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 类型转换 类型转换是检查实例类型的一种方法,或者检查来自类层级不同的父类或子类一个实例,用 is 和 as 操作符 为类 ...

随机推荐

  1. ASP.NET MVC 的自定义模型属性别名绑定

    最近在研究 ASP.NET MVC 模型绑定,发现 DefaultModelBinder 有一个弊端,就是无法实现对浏览器请求参数的自定义,最初的想法是想为实体模型的属性设置特性(Attribute) ...

  2. C8051 PCA实现红外遥控接收

    这里使用的处理器是C8051F005.红外接收头接处理器引脚,中断方式接收按键数据. 一 PCA介绍 1.1 PCA 可编程计数器阵列(PCA)提供增强的定时器功能,与标准8051计数器/定时器相比, ...

  3. JS调用WebService

    <html> <title>接口测试</title> <meta http-equiv="Content-Type" content=&q ...

  4. android 编译 release 签名

    1.编译 ionic build --release android 2.签名文件 keytool -genkey -alias kwwy -keyalg RSA -validity 40000 -k ...

  5. c++ 访问者模式(visitor pattern)

    概述: 我们去银行柜台办业务,一般情况下会开几个个人业务柜台的,你去其中任何一个柜台办理都是可以的.我们的访问者模式可以很好付诸在这个场景中:对于银行柜 台来说,他们是不用变化的,就是说今天和明天提供 ...

  6. QImage 图像格式小结

    原地址:http://tracey2076.blog.51cto.com/1623739/539690 嗯,这个QImage的问题研究好久了,有段时间没用,忘了,已经被两次问到了,突然有点解释不清楚, ...

  7. Qt实现FlatUI样式(开源)

    对于现在做前端开发人员来说,FlatUI肯定不陌生,最近几年扁平化的设计越来越流行,大概由于现在PC端和移动端的设备的分辨率越来越高,扁平化反而看起来更让人愉悦,而通过渐变色产生的质感色彩反而没有扁平 ...

  8. 非常简单实用的Python HTTP服务

    在做分布式系统应用的时候经常在测试环境上传一个包,或者干嘛的,公司的服务器比较bug,只给ldap权限,每次只能scp到自己的个人目录下,然后才能进到公共账号下去cp,比较麻烦.这时候如果你需要一个简 ...

  9. HTML5[5]:在移动端禁用长按选中文本功能

    在手机浏览器中,长按可选中文本,但如果在应用中,会给人一种异样的感觉,最好还是禁用此功能为上. * { -webkit-touch-callout:none; -webkit-user-select: ...

  10. 论文第5章:Android绘图平台的实现

    面向移动设备的矢量绘图平台设计与实现 Design and Implementation of Mobile Device-oriented Vector Drawing Platform 引用本论文 ...