Swift 2.0语法更新(三)
2015-07-07 11:48
162 查看
6.Optional Pattern
let
someOptional:
Int? =
42if
case
.Some(let
x) =
someOptional
{
print(x)
}
if
case
let
x? =
someOptional
{
print(x)
}
if
let
x =
someOptional
{
print(x)
}
此三句输出结果相同,均为"42\n”,若将42改为nil,三个print均不会触发。
let
arrayOfOptionalInts: [Int?]
= [nil,
2,
3,
nil,
5]
for
case
let
number?
in
arrayOfOptionalInts
{
print(number)
}
for
number
in
arrayOfOptionalInts
{
print(number)
}
第一个for 循环中print调用三次,只输出非空值,第二个for 循环输出5次。
7.repeat-while
在Swift2.0中,do-while 被改为repeat-while,do现在大概只出现在Error handling 的do catch 之中了。
8.Type Properties
实例变量归属于实例,每次增添一个类型的实例就需要对实例变量重新赋值。
你也可以设置类型变量,这样所有的实例都会拥有该变量。
对于值类型,你可以在其中定义存储属性或者计算属性的类型变量,而对于引用类型比如类,你只可以定义计算属性(与下方实例代码冲突,但原文就是这么写的,若是理解错误,望指正)。
存储属性可以是变量也可以是常量,计算属性则总是变量。
你在class中可以定义以static关键字或者class关键字开头的计算属性,区别是,class开头的计算属性可以被子类重载。
struct
someStructure {
static
var
storedTypeProperty =
"Some value"
static
var
computedTypeProperty:
Int
{
return
1
}
}
enum
someEnumeration {
static
var
storedTypeProperty =
"Some value"
static
var
computedTypeProperty:
Int
{
return
6
}
}
class
SomeClass {
static
var
storedTypeProperty =
"Some value"
static
var
computedTypeProperty:
Int
{
return
27
}
class
var
overrideableComputedTypeProperty:
Int
{
return
107
}
}
9.Break Statement
break语句用来跳出一个循环、if 语句或者是Switch 语句,break语句可以直接使用也可以在后面增加一个label,这个label 是需要调出的循环、if 语句或者是 Switch的名字。
名字可加在if Switch while等关键字的前面并用冒号分隔开。
10.Declaration Attributes
available:
你可以使用available来表示你的方法声明需要在一个特定的平台或者系统版本下。
* 作为参数可以表示所有平台,加在最后可表示剩余的所有平台。
unavailable 作为参数可表示在特定的平台或者系统版本下不适用。
introduced 参数表示该方法在某特定平台是在哪个系统版本起开始可用的。
deprecated 参数表示该方法在第几个系统版本后不再被推荐使用。
obsoleted 参数表示该方法在第几个系统版本后被彻底废除。
message 参数用来提供当使用了被标记为deprecated 或 obsoleted 的方法后所给出的文字警告。
renamed 参数用来表示某些方法的名字已被改变
warn_unused_result
你可以为方法添加这个属性,这样当你对函数不正确调用,或者调用该方法却没有使用它的结果时,就会获得提醒。
message 参数用来提供当你调用方法却没使用结果时编译器给出的警告。
mutable_varient 用来提供你所使用的non mutating 方法的mutating 版本方法的名字。
比如,Swift标准库里面提供mutating 方法SortInPlace() 和 non mutating方法 sort() 如果你调用sort() 但却并没有用到它的结果,编译器就会猜测你想用的是SortInPlace()。
let
someOptional:
Int? =
42if
case
.Some(let
x) =
someOptional
{
print(x)
}
if
case
let
x? =
someOptional
{
print(x)
}
if
let
x =
someOptional
{
print(x)
}
此三句输出结果相同,均为"42\n”,若将42改为nil,三个print均不会触发。
let
arrayOfOptionalInts: [Int?]
= [nil,
2,
3,
nil,
5]
for
case
let
number?
in
arrayOfOptionalInts
{
print(number)
}
for
number
in
arrayOfOptionalInts
{
print(number)
}
第一个for 循环中print调用三次,只输出非空值,第二个for 循环输出5次。
7.repeat-while
在Swift2.0中,do-while 被改为repeat-while,do现在大概只出现在Error handling 的do catch 之中了。
8.Type Properties
实例变量归属于实例,每次增添一个类型的实例就需要对实例变量重新赋值。
你也可以设置类型变量,这样所有的实例都会拥有该变量。
对于值类型,你可以在其中定义存储属性或者计算属性的类型变量,而对于引用类型比如类,你只可以定义计算属性(与下方实例代码冲突,但原文就是这么写的,若是理解错误,望指正)。
存储属性可以是变量也可以是常量,计算属性则总是变量。
你在class中可以定义以static关键字或者class关键字开头的计算属性,区别是,class开头的计算属性可以被子类重载。
struct
someStructure {
static
var
storedTypeProperty =
"Some value"
static
var
computedTypeProperty:
Int
{
return
1
}
}
enum
someEnumeration {
static
var
storedTypeProperty =
"Some value"
static
var
computedTypeProperty:
Int
{
return
6
}
}
class
SomeClass {
static
var
storedTypeProperty =
"Some value"
static
var
computedTypeProperty:
Int
{
return
27
}
class
var
overrideableComputedTypeProperty:
Int
{
return
107
}
}
9.Break Statement
break语句用来跳出一个循环、if 语句或者是Switch 语句,break语句可以直接使用也可以在后面增加一个label,这个label 是需要调出的循环、if 语句或者是 Switch的名字。
名字可加在if Switch while等关键字的前面并用冒号分隔开。
10.Declaration Attributes
available:
你可以使用available来表示你的方法声明需要在一个特定的平台或者系统版本下。
* 作为参数可以表示所有平台,加在最后可表示剩余的所有平台。
unavailable 作为参数可表示在特定的平台或者系统版本下不适用。
introduced 参数表示该方法在某特定平台是在哪个系统版本起开始可用的。
deprecated 参数表示该方法在第几个系统版本后不再被推荐使用。
obsoleted 参数表示该方法在第几个系统版本后被彻底废除。
message 参数用来提供当使用了被标记为deprecated 或 obsoleted 的方法后所给出的文字警告。
renamed 参数用来表示某些方法的名字已被改变
warn_unused_result
你可以为方法添加这个属性,这样当你对函数不正确调用,或者调用该方法却没有使用它的结果时,就会获得提醒。
message 参数用来提供当你调用方法却没使用结果时编译器给出的警告。
mutable_varient 用来提供你所使用的non mutating 方法的mutating 版本方法的名字。
比如,Swift标准库里面提供mutating 方法SortInPlace() 和 non mutating方法 sort() 如果你调用sort() 但却并没有用到它的结果,编译器就会猜测你想用的是SortInPlace()。
相关文章推荐
- swift 的宏定义
- Apple Swift编程语言入门教程
- Swift Error fatal error: unexpectedly found nil while unwrapping an Optional value
- iOS8发展~Swift(三)UI详细解释
- swift之桥接模式
- Swift 看值类型和引用类型
- Swift教程-集合
- swift中闭包 OC中Block 解决循环引用
- Swift教程-新操作符
- Swift教程-基本类型
- IOS学习之旅-Swift-函数
- IOS学习之旅-Swift-常量、变量、字符串
- Swift 如何将数字型字符串转换成String类型 (toInt()方法) 及返回值未解包的原因
- swift 断言(assert)
- Swift高级语法学习总结(转)
- Swift基础语法学习总结(转)
- swift 之 URL编码
- Swift学习笔记系列——(3)集合类型
- 读书笔记-《Swift语言实战入门》-语法部分
- Swift 元组