swift(三)
2015-10-27 09:53
253 查看
class ViewController:
UIViewController {
override
func viewDidLoad() {
super.viewDidLoad()
//闭包的使用
let names = ["123","456",
"789", "abc","ddd"]
let reversed = names.sort(backwards)
print("\(reversed)")
//闭包表达式语法
// { (parameters) -> returnType in
// statements
// }
let reversed1 = names.sort({(s1:String, s2:String)
-> Bool in
return s1 > s2
})
print("\(reversed1)")
//根据上下文推断类型
通过内联闭包表达式构造的闭包作为参数传递给函数时,都可以推断出闭包的参数和返回值类型,这意味着您几乎不需要利用完整格式构造任何内联闭包。
let reversed2 = names.sort({s1, s2
in return s1 > s2})
print("\(reversed2)")
//单闭包隐式返回
let reversed3 = names.sort({s1, s2
in s1 > s2})
print("\(reversed3)")
//参数名称缩写
let reversed4 = names.sort({$0 > $1})
print("\(reversed4)")
//因为之前声明的是hd2
所以又拷贝了一份 而不是hd本身(结构体)
let hd2 =
Resolution(width: 1000, height:
100)
var cinema = hd2
print("cinema =
\(cinema)")
cinema.width =
200
print("cinema =
\(cinema)")
print("hd2 =
\(hd2)")
//字符串、数组、字典
在swift中
均以结构体型存在,在传入函数的时候会发生 拷贝行为
//延迟存储属性
/*
当第一次被调用才会计算其初始值的属性(必须将延迟存储属性声明成变量)lazy var import (被标记为lazy的属性
没有初始化的时候就同时被多个线程访问,无法保证制备初始化一次)
*/
//属性观察器 willset在新的值被设置之前调用
//didSet 在新的值被设置之后立即调用
//didSet 观察器
将旧的属性值作为参数传入
// Do any additional setup after loading the view, typically from a nib.
}
func backwards(s1:String, s2:String) ->
Bool {
return s1 > s2
}
func someFunction(closure: () ->
Void) {
print("这是函数");
}
//结构体
struct Resolution {
var width =
0
var height =
0
}
override
func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
UIViewController {
override
func viewDidLoad() {
super.viewDidLoad()
//闭包的使用
let names = ["123","456",
"789", "abc","ddd"]
let reversed = names.sort(backwards)
print("\(reversed)")
//闭包表达式语法
// { (parameters) -> returnType in
// statements
// }
let reversed1 = names.sort({(s1:String, s2:String)
-> Bool in
return s1 > s2
})
print("\(reversed1)")
//根据上下文推断类型
通过内联闭包表达式构造的闭包作为参数传递给函数时,都可以推断出闭包的参数和返回值类型,这意味着您几乎不需要利用完整格式构造任何内联闭包。
let reversed2 = names.sort({s1, s2
in return s1 > s2})
print("\(reversed2)")
//单闭包隐式返回
let reversed3 = names.sort({s1, s2
in s1 > s2})
print("\(reversed3)")
//参数名称缩写
let reversed4 = names.sort({$0 > $1})
print("\(reversed4)")
//因为之前声明的是hd2
所以又拷贝了一份 而不是hd本身(结构体)
let hd2 =
Resolution(width: 1000, height:
100)
var cinema = hd2
print("cinema =
\(cinema)")
cinema.width =
200
print("cinema =
\(cinema)")
print("hd2 =
\(hd2)")
//字符串、数组、字典
在swift中
均以结构体型存在,在传入函数的时候会发生 拷贝行为
//延迟存储属性
/*
当第一次被调用才会计算其初始值的属性(必须将延迟存储属性声明成变量)lazy var import (被标记为lazy的属性
没有初始化的时候就同时被多个线程访问,无法保证制备初始化一次)
*/
//属性观察器 willset在新的值被设置之前调用
//didSet 在新的值被设置之后立即调用
//didSet 观察器
将旧的属性值作为参数传入
// Do any additional setup after loading the view, typically from a nib.
}
func backwards(s1:String, s2:String) ->
Bool {
return s1 > s2
}
func someFunction(closure: () ->
Void) {
print("这是函数");
}
//结构体
struct Resolution {
var width =
0
var height =
0
}
override
func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- Apple Swift学习教程
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 讲解iOS开发中基本的定位功能实现
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- Swift中实现点击、双击、捏、旋转、拖动、划动、长按手势的类和方法介绍
- Swift中定义二维数组的方法及遍历方法示例
- 检测iOS设备是否越狱的方法
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- 简单分析Swift语言的一些基本特征
- Swift与C语言指针结合使用实例