初识你---------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 操作符 为类 ...
随机推荐
- php 连接redis,并登录验证
环境: centos7 上安装了redis, 同时安装了php的redis扩展 yum install redis yum install php-pecl-redis redis服务端设置了登录密码 ...
- POJ 2524 Ubiquitous Religions
Ubiquitous Religions Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 20668 Accepted: ...
- [原]编译Android源码过程中遇到的问题
编译Android源码的过程参考Android官网介绍: 1.下载Android源码的步骤:https://source.android.com/source/downloading.html 2.编 ...
- MyBatis 入门
什么是 MyBatis ? MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手工设置参数以及抽取结果集.MyBatis ...
- bootstrap插件学习-bootstrap.tab.js
先看bootstrap-tab.js的结构 var Tab = function ( element ) {} //构造器 Tab.prototype ={} //构造器的原型 $.fn.tab = ...
- Java对象的复制
Java中对象的赋值分为浅拷贝和深拷贝 1.对象浅拷贝 public class CloneTest{ static class Emp{ String name; int age; Date h ...
- MySQL中的锁(表锁、行锁)
锁是计算机协调多个进程或纯线程并发访问某一资源的机制.在数据库中,除传统的计算资源(CPU.RAM.I/O)的争用以外,数据也是一种供许多用户共享的资源.如何保证数据并发访问的一致性.有效性是所在有数 ...
- log4j的一些问题
今天,在学习log4j的时候发现了一点问题,关于level的问题. log4j.rootLogger=error, console, file , fileerror log4j.logger.com ...
- js-对象-2
对象: 对象是一组具有属性和方法的经过组织的数据. 默认对象: 日期对象:(日期基线:1970年1月1日00:00:00) 建立日期对象(实例): 格式:日期对象名称=new Date([日期参数]) ...
- Django项目--web聊天室
需求 做一个web聊天室,主要练习前端ajax与后台的交互: 一对一聊天和群组聊天 添加用户为好友 搜索并添加群组 管理员可以审批用户加群请求,群管理员可以有多个,群管理员可以删除,添加禁言群友 与聊 ...