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中的枚举是一等类型, ...
随机推荐
- php 读取windows 的系统版本,硬盘,内存,网卡,数据流量等
php 读取windows 的系统版本,硬盘,内存,网卡,数据流量等 <?php header("Content-type: text/html; charset=utf-8" ...
- .vscode folder
https://stackoverflow.com/questions/32964920/should-i-commit-the-vscode-folder-to-source-control Che ...
- 创建带有IN类型参数的存储过程(四十八)
创建带有IN类型参数的存储过程 我们经常要从数据表中删除记录,一般情况我们删除记录都是根据id来删除的,比如我们通常要输入DELETE FROM 表名 WHERE 后面跟上我们的条件,因为我们要经常写 ...
- Oracle 排序中 nulls first 与 nulls last 的用法
Nulls first和nulls last是Oracle Order by支持的语法 如果Order by 中指定了表达式Nulls first则表示null值的记录将排在最前(不管是asc 还是 ...
- 【基础篇】Android手动卸载虚拟机程序
adb shell (进入模拟器自带的操作系统) cd data/app (切换到apk的安装目录) rm apk文件全称 例 : rm com.test.TestActivity.apk (手动删除 ...
- HDU 4431 Mahjong 模拟
http://acm.hdu.edu.cn/showproblem.php?pid=4431 不能说是水题了,具体实现还是很恶心的...几乎优化到哭但是DFS(还加了几个剪枝)还是不行...搜索一直T ...
- 计算机科学书籍推荐和CSS、js书籍推荐
计算机科学:<深入理解计算机系统>,这是基础知识 JavaScript:JavaScript高级程序设计:大名鼎鼎的红宝书 <精通CSS:高级Web标准解决方案>:因为我觉CS ...
- 【Django】Web框架本质
目录 根据不同的路径返回不同的内容 普通版 函数版 函数进阶版 返回具体的HTML文件 让网页动态起来 服务器和应用程序 wsgiref 模块 @ * 我们可以这样理解:所有的==Web应用本质上就是 ...
- Cocos2d-x游戏的一般验证分析
Coco2d-x引擎是相对于Unity3D的又一实力派引擎.尽管随着3D游戏的热门,很多其它的厂商偏向于Unity3D.可是Coco2d-x的普及量也不容小觑,特别是一些比較大的手游公司.比方触控科技 ...
- Android圆形图片不求人,自定义View实现(BitmapShader使用)
在很多APP当中,圆形的图片是必不可少的元素,美观大方.本文将带领读者去实现一个圆形图片自定View,力求只用一个Java类来完成这件事情. 一.先上效果图 二.实现思路 在定义View 的onMea ...