swift -结构体
//
// main.swift
// Struct-Demo-05
// import Foundation println("结构体測试!")
//结构体和C语言的结构体不同
//swift结构体能够带函数/C++
struct QHTest {
var x = 0;//定义一个结构体 x y
var y = 0;//0是初值
//定义结构体的构造函数
init(){//真正的构造函数
//定义一个空的构造函数, 构造函数是以init开头的 自己主动调用
//oc alloc init] 这个须要我们主动调用
NSLog("in init");
}
//构造函数參数,那么以后带上參数。必须携程QHTest(x:100,y:200);
init(x:Int,y:Int)
{
//定义了带有两个參数的构造函数
self.x = x;
self.y = y;
NSLog("in init(x:y)");
} //_ underscore 这个能够让调用的时候不用写x:
// x: y: 这个就是label oc/label
init(_ x:Int,_ y :Int)
{
self.x = x;
self.y = y;
} //可是结构体没有析构函数。和面向对象有点不同
func getCenter()->Int{
return (x+y)/2;
}
//给现有的点x,y加上delta
//在调用的时候
//obj.addOffset(100,deltaY:200);
mutating func addOffset(deltaX:Int,deltaY:Int){ //由于结构体是一个拷贝的对象(是一个引用)
//函数内部是不能改动变量的
//mutating 是能够让函数改动里面的变量
x += deltaX;
y += deltaY;
}
}; func testStructure(){
//定义一个结构体
//结构体的定义是 结构体的名字()
var s = QHTest(x:100,y:200);
println("s.x = \(s.x) s.y = \(s.y)"); var s2 = QHTest(); s2.x = 111;
s2.y = 222;
println("s2.x = \(s2.x) s2.y = \(s2.y)");
//这样的构造函数和我们c++ java相似了
var s3 = QHTest(333,444);
println("s3.x = \(s3.x) s3.y = \(s3.y)"); s3.x = 600;
let c = s3.getCenter();
println("c is \(c)"); s3.addOffset(100, deltaY: 200);
println("s3.x = \(s3.x) s3.y = \(s3.y)");
}
testStructure();
swift -结构体的更多相关文章
- Swift 结构体和类
//*---------------------结构体-------------*/ //swift结构体也具有封装的概念 //swift结构体比OC C语言里面的结构体更加进了一步,里面可以有方法, ...
- Swift 结构体的使用
Swift 结构体是构建代码所用的一种通用且灵活的构造体. 我们可以为结构体定义属性(常量.变量)和添加方法,从而扩展结构体的功能. 与 C 和 Objective C 不同的是: 结构体不需要包含实 ...
- Swift结构体和类
Swift结构体 在Swift标准中,绝大多数的公开的类型都是结构体,而枚举和类只占很小的一部分 比如Bool.Int.Double.String.Array.Dictionary等常见的类型都是结构 ...
- Swift结构体与类
在面向过程的编程语言(如C语言)中,结构体用得比较多,但是面向对象之后,如在C++和Objective-C中,结构体已经很少使用了.这是因为结构体能够做的事情,类完全可以取而代之.而Swift语言却非 ...
- iOS Swift结构体与类的方法调度
前言 hello,小伙伴们:在忙碌中闲暇之余给大家聊聊swift的知识点,今天给大家带来的是swift中结构体与类的方法调度详细区别,希望对你有所帮助,好了废话不用多说,接下来步入主题! 1.普通方法 ...
- 学习swift从青铜到王者之swift结构体和类08
定义 // 定义类 class StudentC{ } // 定义结构体 struct StudentS{ } 定义存储属性 // 定义类 class StudentC{ var name:Strin ...
- Swift 结构体struct
//结构体是一个值类型 struct location{ //属性 var x:Double var y:Double //方法 func test() { print("结构体中的test ...
- swift学习笔记3——类、结构体、枚举
之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...
- swift 的枚举、结构体、类
一.Swift的枚举 枚举是一系相关联的值定义的一个公共的组类型,同时能够让你在编程的时候在类型安全的情况下去使用这些值.Swift中的枚举比OC中的枚举强大得多, 因为Swift中的枚举是一等类型, ...
随机推荐
- Jmeter +InfluxDB +collectd +Grafana16
Jmeter +InfluxDB +collectd +Grafana(十六) 虚拟机ip 192.168.180.128 Influxdb Influxdb是一个开源的分布式时序.时间和指标数据库, ...
- BootstrapDialog模态框
5最近是比较烦直接使用Bootstrap里面的模态框,满屏都是模态框代码,看得心烦.然后想起以前使用的BootstrapDialog.show()的方式,挺简单好用的.然后就拿出来分享一下. 1.下载 ...
- 公司采购 流程flowable例子
Name: Flowable BPMN 2.0 designer Location: http://flowable.org/designer/update/ 业务描述:1. 公司采购,因为办公用品价 ...
- Core J2EE Patterns - Service Locator--oracle官网
原文地址:http://www.oracle.com/technetwork/java/servicelocator-137181.html Context Service lookup and cr ...
- Node书签
1.开源项目 [译]过去一年25个惊人的开源Node.js项目(2018版) 百度网盘下载助手
- Hexo Daemon
前提 今天中午的时候发现自已网站突然不能访问了,我猜肯定是后台的hexo服务异常自动kill掉了.果然登录服务器ps -ef | grep hexo查看进程,果然发现hexo的进程不在了.由于我将输出 ...
- CentOS下安装jdk1.8.0_181
我安装的为 jdk1.8.0_181 1.检查是否存在open jdk,不存在直接跳到第 5 步 java -version 查看当前系统自带的open jdk版本信息 2.查看包含java字符串的文 ...
- AI:OPENCV实现人脸的自动识别
依赖jar包: faceRecognition.java package opencv; import java.awt.Graphics; import java.awt.image.Buffere ...
- SQL char字段类型排序
我是做的ACCESS时候需要对字段的值进行排序,字段格式是char类型的,但是存的值是数字.现在需要对该字段进行排序. 通过查找,找到以下两种方法,记录下来. 1. 你可以转换成int型再排序 sel ...
- 如日中天的Uber到底是用什么开发语言做到的?
Uber将正在蓬勃发展的Go和Node.js这两个语言很好的融合到其系统上面来.Uber的站点可靠性project师Tom Croucher在近期于波兰举行的Node.js互动大会上详尽的对该公司所用 ...