swift的struct本节描述结构的类型
<span style="font-size:24px;">struct David {
var x = 0;//一个结构的定义,两个字段x,y
var y = 0;//初始值
//定义结构体的构造函数
init(){
//定义一个空构造函数,真正的构造函数,调用时候不带參数调用这里
//构造函数是以init 开头的。自己主动调用
// [[oc alloc]init]不是构造函数
println("in init");
}
init(x:Int,y:Int){
self.x = x;//定义带有2个參数的构造函数,带双參数的时候调用这里
self.y = y;
println("in init(x:y:)")
}
//结构体有构造函数,没有析构函数
func getCenter()->Int{
return (x+y)/2;
}
//给现有的点x,y加偏移量
//obj.addOffset(100,deltaY:)
mutating func addOffset (deltaX:Int,deltaY:Int){
//结构体是拷贝的对象,函数内部不能改动变量
//须要改动。加keywordmutating,
//mutating,能够改动构造函数内部变量
x += deltaX;
y += deltaY;
}
};
func testDavid(){
//定义一个结构体
//结构体的定义是 结构体的名字(參数名:參数值)
var d = David();//调用构造函数init()
var s = David(x: 100, y: 200);//调用构造函数init(x,y)
println("s.x = \(s.x), s.y = \(s.y)")
let c = s.getCenter();//调用析构函数getCenter
println("c is \(c)");
s.addOffset(100, deltaY: 200);//由于析构函数没有返回值。所以不能赋值给变量
println("d is :\(s.x)");
}
testDavid();//測试函数调用
</span>
版权声明:本文博主原创文章,博客,未经同意不得转载。
swift的struct本节描述结构的类型的更多相关文章
- Swift语言精要 - 浅谈结构体(Struct)
CGRect, CGSize, CGPoint这些是 . String, Int, Array, Dictionary这些我们经常用的也是结构体(Struct). 那么结构体(Struct)到底是什么 ...
- Swift超详细的基础语法-结构体,结构体构造器,定义成员方法, 值类型, 扩充函数
知识点 基本概念 结构体的基本使用 结构体构造器(构造函数/构造方法) 结构体扩充函数(方法), 又称成员方法 结构体是值类型 1. 基本概念 1.1 概念介绍 结构体(struct)是由一系列具有相 ...
- 你好,C++(14)如何描述“一个名叫陈良乔,年龄33岁,身高173厘米,体重61.5千克的男人”——3.8 用结构体类型描述复杂的事物
3.8 用结构体类型描述复杂的事物 利用C++本身所提供的基本数据类型所定义的变量,只能表达一些简单的事物.比如我们可以用int类型定义nAge变量表示人的年龄,用string类型定义strName ...
- Swift语法学习之 类和结构体
类和结构体 本页包括内容: 类和结构体对照 结构体和枚举是值类型 类是引用类型 类和结构体的选择 集合(collection)类型的赋值与复制行为 与其他编程语言所不同的是,Swift 并不要求你为自 ...
- Swift中文教程(六)--枚举和结构
原文:Swift中文教程(六)--枚举和结构 Enumerations 枚举 使用 enum 来创建一个枚举.跟Classes(类)和其他类型的命名方式一样,枚举也可以有Method(方法). enu ...
- 资源描述结构(Resource Description Framework,RDF)
资源描述框架(Resource Description Framework),一种用于描述Web资源的标记语言.RDF是一个处理元数据的XML(标准通用标记语言的子集)应用,所谓元数据,就是" ...
- 结构体struct、联合体union、枚举类型enum
1.c语言中的类型 1)内置类型——char,short,int,float,double: 2)用户自定义类型(UDT)——struct结构体,union联合体,enum枚举类型 2.内存对齐 2. ...
- Go语言规格说明书 之 结构体类型(Struct types)
go version go1.11 windows/amd64 本文为阅读Go语言中文官网的规则说明书(https://golang.google.cn/ref/spec)而做的笔记,介绍Go语言的 ...
- C++结构体struct与C语⾔结构体和C++引⽤&与传值的区别
写再最前面:摘录于柳神的笔记: (1)定义好结构体 stu 之后,使⽤这个结构体类型的时候,C语⾔需要写关键字 struct ,⽽C++⾥⾯可以省 略不写: (2)这个引⽤符号 & 要和C语⾔ ...
随机推荐
- Mysql 导入导出数据结构及数据
方式一: mysqldump -ukevin -P3306 --default-character-set=utf8 -p -h10.1.15.123 activity sign_in_user &g ...
- Houdini Pyro流体的插值变速
用简单的节点尝试了下Houdini流体的变速,这里的流体指的是Pyro,而不是FLIP.FLIP仅仅须要记录ID属性然后TimeBlend & TimeShift就可以. Vimeo 上图是一 ...
- IOS7最新的系统漏洞
苹果近期就实用户发现了一个新iOS7系统漏洞,利用这个漏洞绕过password输入界面,在不知道password的情况下打开你近期使用的软件. 而这个过程仅仅需短短的5秒钟! 经測试,这个漏洞并没那么 ...
- OCaml Language Sucks
OCaml Language Sucks OCaml Language Sucks
- R语言与数据分析之九:时间内序列--HoltWinters指数平滑法
今天继续就指数平滑法中最复杂的一种时间序列:有增长或者减少趋势而且存在季节性波动的时间序列的预測算法即Holt-Winters和大家分享.这样的序列能够被分解为水平趋势部分.季节波动部分,因此这两个因 ...
- HDU1754_I Hate It(线段树/单点更新)
解题报告 题意: 略 思路: 单点替换,区间最值 #include <iostream> #include <cstring> #include <cstdio> ...
- stripslashes和addslashes的区别
我们在向mysql写入数据时,比如: mysql_query(”update table set `title`=’kuhanzhu’s blog’”); 那就会出错.同asp时一样,数据库都会对单引 ...
- sql server数据库保存图片或者其他小文件
原文:sql server数据库保存图片或者其他小文件 测试用sql server数据库保存图片或者其他小文件. 文件流字段用varbinary类型. static void Main() { App ...
- android 屏幕适配 课程笔记
1 横竖屏切换: 文件名同样. 目录不同. layout-port/ 代表竖屏 layout-land/ 代表横屏 layout/ 代表不论什么没有修饰符的layout目录. 终 ...
- android 防止多次点击,它会导致事件侦听响应于其他接口
这里有情况: A当点击跳转至B介面,点击B接口结束后,到A界面中 1.此时在B界面中,设置点击事件,点击后结束B v.setOnClickListener(new OnClickListener() ...