SWIFT Tuple Pattern及Struct Pattern

定义一个Tuple

let color = (1.0,1.0,1.0,1.0)

switch color{

case (0.0,0.5...1.0,let blue,_): //匹配第一个值为0.0第二个值为0.5到1.0第三四值为任意,并将第三个值传给blue变量

println("Blue is \(blue)")

case let (r,g,b,1.0) where r == g && g == b: //额外条件where 本个亦是的值要相等

println("Opaque grey \(r * 100)%")

default:

println("unkonw")

}

元祖就说完了,接下来定义一个Struct

struct Color {

var red:Double?

var green:Double?

var blue:Double?

var alpha:Double?

init(red:Double,green:Double,blue:Double,alpha:Double){

self.red = red

self.green = green

self.blue = blue

self.alpha = alpha

}

}

var mycolor = Color(red: 10, green: 20, blue: 60, alpha: 1.0)

switch mycolor{

case let a where a.red == 10 && a.blue == 60:

println("yes")

default:

println("unkonw")

}

时间: 2024-10-27 07:21:32

SWIFT Tuple Pattern及Struct Pattern的相关文章

[Design Pattern] Front Controller Pattern 简单案例

Front Controller Pattern, 即前端控制器模式,用于集中化用户请求,使得所有请求都经过同一个前端控制器处理,处理内容有身份验证.权限验证.记录和追踪请求等,处理后再交由分发器把请求分发到对于的处理者. 前端控制器模式主要涉及下面三个角色 前端控制器(Front Controller) - 一个处理器用于处理全部的用户请求 分发器(Dispatcher) - 把处理后的请求分发到对于的业务处理程序 视图(View) - 真正处理请求业务程序 下面是前端控制器的一个简单案例.

[Design Pattern] Service Locator Pattern 简单案例

Service Locator Pattern,即服务定位模式,用于定位不同的服务.考虑到 InitialContext::lookup 的成本比较高,提供了 Cache 类缓存以定位到的服务. 代码实现 Service 接口 public interface Service { public String getName(); public void execute(); } Service1, Service2 实现 Service 接口,提供具体服务 public class Servic

[Swift]LeetCode456. 132模式 | 32 Pattern

Given a sequence of n integers a1, a2, ..., an, a 132 pattern is a subsequence ai, aj, ak such that i < j < k and ai < ak < aj. Design an algorithm that takes a list of n numbers as input and checks whether there is a 132 pattern in the list.

Pattern Design - Strategy Pattern

If you can disassemble code  and  you want to apply one method of an object in another object that there is no inheritance between them, you can use Strategy Pattern. Aha, actually it is good strategy that we can wrap different kinds of algorithms, t

Swift之别具一格的Struct和Class

说到结构体和类,还是那句话,只要是接触过编程的小伙伴们对这两者并不陌生.但在Swift中的Struct和Class也有着令人眼前一亮的特性.Struct的功能变得更为强大,Class变的更为灵活.Struct中不仅可以定义属性,并且还可以在其中定义函数,这一点比较像Class的特性了.不过Struct毕竟是结构体,它还是不支持继承等类特有的属性的.今天这篇博客就正儿八经的来搞一搞Swift中的Struct和Class. 当然,这篇博客是比较基础的,但是基础的东西才是重要的东西呢,废话不多说了,走

swift简单学习之Struct

一. Struct (结构体) 结构体,说白了就是一组变量,这些变量有统一的命名.在Swift中,我们不仅可以在Struct中声明变量并为变量设置默认值,而且可以在Struct中添加相应的函数.接下来我们就要创建一个Point结构体,里边有两个属性x坐标和y坐标,并且x坐标和y坐标的初始值为0.其中还有两个方法,一个是display方法,负责输出点的坐标,并且还有一个setPoint方法,这个方法负责设置坐标点.然后我们就要去这个结构体去声明变量,并且调用其中的方法. 1.结构体类型的定义 使用

swift -- Tuple 元组

let tuple1 = ("As god name", "2015/08/08", true, 16)    // 定义元组 let tuple3 = (name: "As god name", time: "08/08", bool: true, number: 10)   // 定义元组 let login: (Bool, String) = (true, "慕课网")          // 定义元

Swift中 Class和Struct的区别

类(Class)和结构体(Struct)区别 1.  内存管理方式不一样, 类引用类型, 分配在堆上. 结构体值类型,分配在栈上. 2. 类, 有析构. 结构体不能有析构, playground中测试直接卡死. 3. 结构体构造函数, 会自动生成带参数的构造器.类不会对有初始化赋值的属性, 生成带参数的构造器. 2. 类有继承特性,结构体没有继承特性,自然也不存在对成员属性和成员方法, 类属性和类方法的重载. 正因为结构体没有继承, 所以操作符函数, 需要static修饰, 而不能用class修

swift tuple多元组

func swapme<T>(inout a:T,inout b:T,inout c:T){ (a,b,c) = (b,c,a); } var a:Int = 1; var b:Int = 2; var c:Int = 3; println("\(a),\(b),\(c)"); swapme(&a, &b, &c); println("\(a),\(b),\(c)");