//
// 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 -结构体的更多相关文章

  1. Swift 结构体和类

    //*---------------------结构体-------------*/ //swift结构体也具有封装的概念 //swift结构体比OC C语言里面的结构体更加进了一步,里面可以有方法, ...

  2. Swift 结构体的使用

    Swift 结构体是构建代码所用的一种通用且灵活的构造体. 我们可以为结构体定义属性(常量.变量)和添加方法,从而扩展结构体的功能. 与 C 和 Objective C 不同的是: 结构体不需要包含实 ...

  3. Swift结构体和类

    Swift结构体 在Swift标准中,绝大多数的公开的类型都是结构体,而枚举和类只占很小的一部分 比如Bool.Int.Double.String.Array.Dictionary等常见的类型都是结构 ...

  4. Swift结构体与类

    在面向过程的编程语言(如C语言)中,结构体用得比较多,但是面向对象之后,如在C++和Objective-C中,结构体已经很少使用了.这是因为结构体能够做的事情,类完全可以取而代之.而Swift语言却非 ...

  5. iOS Swift结构体与类的方法调度

    前言 hello,小伙伴们:在忙碌中闲暇之余给大家聊聊swift的知识点,今天给大家带来的是swift中结构体与类的方法调度详细区别,希望对你有所帮助,好了废话不用多说,接下来步入主题! 1.普通方法 ...

  6. 学习swift从青铜到王者之swift结构体和类08

    定义 // 定义类 class StudentC{ } // 定义结构体 struct StudentS{ } 定义存储属性 // 定义类 class StudentC{ var name:Strin ...

  7. Swift 结构体struct

    //结构体是一个值类型 struct location{ //属性 var x:Double var y:Double //方法 func test() { print("结构体中的test ...

  8. swift学习笔记3——类、结构体、枚举

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

  9. swift 的枚举、结构体、类

    一.Swift的枚举 枚举是一系相关联的值定义的一个公共的组类型,同时能够让你在编程的时候在类型安全的情况下去使用这些值.Swift中的枚举比OC中的枚举强大得多, 因为Swift中的枚举是一等类型, ...

随机推荐

  1. sql的四大函数

    字符串函数: 1.charindex(字符串表达式 1, 字符串表达式2[,整数表达式]) select charindex('ab','BCabTabD')返回 3 select charindex ...

  2. SQL保存XML报错 “XML 分析: 行 1,字符 47,非法的 xml 字符”

    例如: <?xml version="1.0" encoding="utf-8" standalone="yes"?> < ...

  3. Ubuntu系统下的多路径软件 DM Multipath 配置。

    Ubuntu系统下的多路径软件是操作系统自带的 DM Multipath工具.------------------------------------------------------------- ...

  4. 笔记本E450机械硬盘数据迁移到固态硬盘

    背景: E450机械硬盘使用速度过慢,但E450只有一个SATA位,无法直接使用 “分区助手”迁移. 处理: 1.将固态硬盘通过USB口外接在笔记本上 2.正常打开E450,进入桌面 3.对固态硬盘进 ...

  5. ES6学习笔记(四)数值的扩展

    1.二进制和八进制表示法 ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示. 0b111110111 === 503 // true 0o767 === 503 ...

  6. Java基础String的方法

    Java基础String的方法 字符串类型写法格式如下: 格式一: String 变量名称; 变量名称=赋值(自定义或传入的变量值); 格式二: String 变量名称=赋值(自定义或传入的变量值); ...

  7. CentOS下安装jdk1.8.0_181

    我安装的为 jdk1.8.0_181 1.检查是否存在open jdk,不存在直接跳到第 5 步 java -version 查看当前系统自带的open jdk版本信息 2.查看包含java字符串的文 ...

  8. scp---远程拷贝文件

    scp命令用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的.可能会稍微影响一下速度.当你服务器硬盘变为只读read onl ...

  9. 分享到twitter,facebook,google,yahoo,linkedined,msn

    编辑器加载中... 1. 分享到twitter的代码” title=”分享到 Twitter” target=”_blank” rel=”nofollow”>Twitter 2. 分享到Face ...

  10. SpringBoot 结合 Thymeleaf 进行页面的跳转

    1.引入thymeleaf依赖 <!--thymeleaf--> <dependency> <groupId>org.springframework.boot< ...