Swift 2.0语法更新(三)

翻译 2015年07月07日 11:48:25
6.Optional Pattern

let someOptional: Int? = 42
if 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()。



Swift2.0语法更新(2)

2.Checking API Availability Swift有内置的API可用性检查,它保证了你不会误用在当前系统上不支持的API,如果你使用了则会在运行时报错,你可以使用#a...
  • SHZnt
  • SHZnt
  • 2015年12月15日 12:50
  • 150

Swift2.0语法更新(3)

6.Optional Pattern let someOptional: Int? = 42 if case .Some(let x) = someOptional...
  • SHZnt
  • SHZnt
  • 2015年12月15日 12:52
  • 281

Swift 2.0语法更新(二)

2.Checking API Availability Swift有内置的API可用性检查,它保证了你不会误用在当前系统上不支持的API,如果你使用了则会在运行时报错,你可以使用#avail...

Vickate_Swift2.0的方法总结 及 与C/OC的语法区别

//import UIKit // //// var 定义可变字典 //// 变量的声明规则 //var str1 = “unique” //let str2 = “你好” ////str...
  • iOS_Bay
  • iOS_Bay
  • 2015年10月22日 21:29
  • 233

# Swift2.0基本语法 常用数据类型

基本语法 名称 作用 print 控制台输出语句 var 声明一个变量 let 声明一个常量 if…else.. 判断语句 switch…case.. 分...

swift2.0 语法新特性(2)

异常处理 swift2.0新添加了异常处理机制,使swift更加安全,提高了代码的可读性 关键字 throws、throw、try、do、catch 实例 一个简单的用户...

Swift2.0 基本语法

Swift基本语法(强类型语言) 语句结束 —>; 不需要分号, 回车即可,多语句并列时,可使用 alloc init —> () alloc initWithXXX —> (XXX:...

iOS项目更新之升级Xcode7 & iOS9 & swift2.0

1 sizeWithAttributes 传参错误的写法 let twoWordWidth = “差额:”.sizeWithAttributes(NSDictionary(object: Mac...
  • xdrt81y
  • xdrt81y
  • 2015年09月22日 19:40
  • 8483

从头开始swift2.0 仿乐乐医项目(三)无限滚动广告

现在我们完成tableView的上面部分,也就是headView。新建一个xib之前,我们可以先建一个group,专门放MainViewController相关的文件。 无法同时创建xib,那我们自...
  • a_mean
  • a_mean
  • 2015年12月25日 22:41
  • 1079

Swift基础语法预览(三)

对象和类 使用class以及跟随着类名来创建一个类。类中的属性声明和常量变量声明一样,同样的申明函数方法也是同样的方式。 class Shape {     var number...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Swift 2.0语法更新(三)
举报原因:
原因补充:

(最多只允许输入30个字)