The Swift Programming Language 中文版:http://wiki.jikexueyuan.com/project/swift/chapter1/02_a_swift_tour.HTML
一、Optional类型
主要思想:Optional类型就是在基础类型上包装了一层
主要符号:?和!(?表示把基础类型封装成Optional类型,即封包;!表示把Optional类型转成基础类型,即解包)
学习参考文章:http://www.cocoachina.com/industry/20140605/8687.HTML
重点:
1、声明成Optional的变量在调用函数方法时必须在变量末尾加上?,否则报错
2、!的用在声明的时候表示变量自动解包变成基础类型,不需要在变量后加上!
实例一:Optional类型
var stringValue : String? = "ss"
let hashValue = stringValue?.hashValue //4799450059484797865
let hashValue2 = stringValue!.hashValue //4799450059484797865
//let hashValue3 = stringValue.hashValue //报错,看重点第一条
print(stringValue) //"Optional("ss")"
print(stringValue!) //"ss"
//print(stringValue?) //报错
print(stringValue?.hashValue) //"Optional(4799450059484797865)"
实例二: Optional类型自动解包
var stringValue2 : String! = "ss2"
let hashValue3 = stringValue2?.hashValue //4799450059734628306
let hashValue4 = stringValue2!.hashValue //4799450059734628306
let hashValue5 = stringValue2.hashValue //4799450059734628306
print(stringValue2) //"ss2"
print(stringValue2!) //"ss2"
//print(stringValue2?) //报错
print(stringValue2?.hashValue) //"Optional(4799450059734628306)"
二、闭包
主要思想:闭包是功能性自包含模块,可以在代码中被传递和使用。 Swift 中的闭包与 C 和 Objective-C中的 blocks 以及其他一些编程语言中的 lambdas 比较相似。可以使用{}来创建一个匿名闭包通俗一点就是一段代码
主要符号:{}
学习参考文章:http://www.tuicool.com/articles/faYbmy
重点:
1、函数也是闭包
2、函数可以当成变量来使用,即可以把一个函数赋值给变量
varnumbers = [20,19712]
实例一:函数的返回值是另一个函数
func intToString() ->(Int -> String){
func string(number : Int) ->String{
return String(number)
}
returnstring
}
var firstFunc = intToString() //把函数声明成了一个变量
firstFunc(6)
说明:->(Int->String)表示函数的返回类型是),)不是一般的Int,String的基础类型类型。它表示一个函数,改函数的参数是Int型返回值是String型。
实例二、一个函数作为另一个函数的参数
func hasAnyMatches(List: [Int],condition: Int -> Bool) -> Bool {
for item in List {
if condition(item) {
return true
}
}
return false
}
func lessthanTen(number: Int) -> Bool {
return number < 10
}
hasAnyMatches(numbers,lessthanTen) //swift1.0的写法
//hasAnyMatches(numberscondition:lessthanTen) //swift2.0的写法
实例三、使用in将参数和返回值类型声明与闭包函数体进行分离======写法一======
numbers.map({
(number: Int) -> Int in
let result = 3 * number
return result
})
======写法二======
numbers.map { (number: Int) -> Int in
let result = 3 * number
return result
}
======写法三======
func change(number : Int) -> Int{
let result = 3 * number
return result
}
numbers.map(change)
上面三个例子中都出现了函数后面没有加(),可以理解为这时把函数当成了变量来用。和c++中的函数指针有点像。虽然上面这么理解函数,但是我到现在也搞不清楚什么时候要加(),什么时候不加。
swift教程:http://c.biancheng.net/cpp/HTML/2285.HTML
总结以上是内存溢出为你收集整理的Swift语法备注全部内容,希望文章能够帮你解决Swift语法备注所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)