Swift基础(六):属性、方法、下标脚本
来源:互联网 发布:网络配线架品牌 编辑:程序博客网 时间:2024/06/05 02:30
目录:
1.属性
2.方法
3.下标脚本
//1.属性
//存储属性和计算属性
struct Point
{
var x = 0.0, y =0.0;
}
struct Size
{
var width = 0.0, height =0.0;
}
struct testStruct
{
var origin = Point();
var size = Size();
var center:Point//计算属性:通过一个get和可选的set来设置和获取值
{
get
{
let centerX = origin.x + (size.width /2);
let centerY = origin.y + (size.height /2);
return Point(x: centerX, y: centerY);
}
// set(newCenter) //显示set值
// {
// origin.x = newCenter.x - (size.width / 2);
// origin.y = newCenter.y - (size.height / 2);
// }
set//快捷set值,有默认的新值newValue
{
origin.x = newValue.x - (size.width /2);
origin.y = newValue.y - (size.height /2);
}
}
}
var testStruct1 = testStruct(origin: Point(x:0.0,y:0.0), size:Size(width:12.0,height:15.0));
print(testStruct1.center);//输出:6.0,7.5
testStruct1.center =Point(x:5.0,y:8.0);
print(testStruct1.origin);//输出:Point(x: -1.0, y: 0.5)
//只读属性
struct testStructReadOnly
{
var origin = Point();//存储属性
var size = Size();
var center:Point//只读属性:可以不要getter
{
let centerX = origin.x + (size.width /2);
let centerY = origin.y + (size.height /2);
return Point(x: centerX, y: centerY);
}
}
//属性观察器:willSet,didSet
class StepCounterTest
{
var totalSteps: Int = 0
{
willSet(newTotalSteps)// willSet在新的值被设置之前调用
{
print("设置总步数:\(newTotalSteps)");
}
didSet//didSet在新的值被设置之后立即调用
{
if totalSteps > oldValue
{
print("增加了 :\(totalSteps - oldValue) 步数");
}
}
}
}
let stepCounter = StepCounterTest();
stepCounter.totalSteps =200
// 设置总步数:200
// 增加了:200 步数
stepCounter.totalSteps =360
// 设置总步数:360
// 增加了:160 步数
//2.方法
//self类似this指针
//修改值类型的属性,在方法前加上mutating(变化,突变)关键字
struct PointTest
{
var x = 0.0, y =0.0
mutating func moveByX(deltaX:Double, y deltaY: Double)
{
x += deltaX;//修改值类型属性:X
y += deltaY;
}
}
var somePoint = PointTest(x:1.0, y: 1.0)
somePoint.moveByX(2.0, y:3.0)
print("The point is now at (\(somePoint.x),\(somePoint.y))")
// 打印输出: "The point is now at (3.0, 4.0)"
//3.下标脚本:下标脚本可以定义在类(Class)、结构体(structure)和枚举(enumeration)这些目标中。类似数组,字典的下标访问
struct TestSubscript
{
let multiplier: Int;
subscript(index: Int) -> Int
{
get
{
return multiplier * index;
// 返回与入参匹配的Int类型的值
}
set
{ // 执行赋值操作
}
}
}
let threeTimesTable = TestSubscript(multiplier: 3);
print("3的6倍是\(threeTimesTable[6])");
// 输出 "3的6倍是18"
- Swift基础(六):属性、方法、下标脚本
- Swift的属性,方法,下标脚本以及继承
- swift基础笔记6-方法&下标脚本
- Swift(十二、方法&下标脚本)
- Swift 下标脚本(Subscripts)
- Swift学习- 下标脚本(十二)
- swift_022(Swift 的下标脚本)
- Swift之下标脚本
- Swift-下标脚本
- Swift 中的下标脚本
- Swift 下标脚本
- [Swift]属性和下标
- Swift基础 下标
- Swift学习:2.12 下标脚本
- Swift学习笔记(15)--下标脚本(Subscripts)
- Swift入门教程10-subscript下标脚本
- swift详解之八---------------下标脚本
- 学习Swift笔记 (十四)Swift的附属脚本(下标)
- 分布式事务方式
- Redis源码解析:23sentinel(四)故障转移流程
- Lowest Common Ancestor of a Binary Tree
- 以一个简单的数据库表为例来展示创建全局/局部数据源和连接池的配置与测试
- cocos2dx学习源代码之接口iOS事件分发(2)
- Swift基础(六):属性、方法、下标脚本
- 六种处理异常的陋习
- 【leetcode】242. Valid Anagram
- python导入package
- EDK14.7 ip核向导 驱动文件bug修复
- 百度地图定位源码学习
- select与poll、epoll
- LeetCode:Ugly Number
- Spring中的循环依赖问题介绍及解决方法