swift -结构体
2015-08-14 08:04
369 查看
// // 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入门(九)——String与Int、Double、Float等数字相互转换
- Swift爬行篇-- UIButton
- Swift- 枚举中的rawValue和hashValue
- swift-08-使用键值对儿统计字符在字符串中出现的次数
- swift-08-使用键值对儿统计字符在字符串中出现的次数
- swift-07-使用for-in 遍历数组
- swift-08-元组分解和数组
- swift-07-使用for-in 遍历数组
- swift-08-元组分解和数组
- swift 常用代码
- The Swift Programming Language (基础部分)
- Ray Wenderlich的swift教程04--布局,添加图片,音频
- Swift UI学习UITableView and protocol use
- Swift2学习:语言指南-基础部分
- CSDN博客导出工具 Mac By Swift
- swift -控制语句
- Swift:可选类型(Optional)
- swift -基本数据类型的定义与使用
- 不要用子类!Swift的核心是面向协议