一、属性的声明
OC的常量和变量主要跟属性所属类是否是可变的
@property (nonatomic, retain) NSArray *modelObject;
Swift常量和变量必须在使用前声明,用 let 来声明常量,用 var 来声明变量。
//声明一个名字为number常量
let number = 333
//声明一个名字为mutableNumber变量
var mutableNumber = 444
二、Swift是一门安全的语言
- Swift是一个类型安全(type safe)的语言,让你清楚地知道代码要处理的值的类型,如果你的代码需要一个String,你绝对不可能不小心传进去一个Int,因为它会在编译你的代码时进行类型检查(type checks),并把不匹配的类型标记为错误。这可以让你在开发的时候尽早发现并修复错误。
- Swift还会帮我们做类型推断,每次声明常量和变量的时候都不必显式指定类型,如果你没有显式指定类型,Swift 会使用类型推断(type inference)来选择合适的类型,编译器会根据你赋的值自动推断出表达式的类型。
let number = 42
// number 会被推测为 Int 类型
let number = 3.14159
// number 会被推测为 Double 类型
let number = 3 + 0.14159
// number 会被推测为 Double 类型
三、Swift中的布尔值
OC中的布尔值是YES和NO,而且是非零既为真。
Swift中布尔值是true和false,不是非零即为真。
在OC中这样写是不会报错的
if (1) {
//在OC中没有问题
}
在Swift中会报错
if 1 {
//Int' is not convertible to 'Bool'
}
四、元组
元组(tuples)把多个值组合成一个复合值。元组内的值可以是任意类型,并不要求是相同类型。
你可以把任意顺序的类型组合成一个元组,这个元组可以包含所有类型。只要你想,你可以创建一个类型为 (Int, Int, Int) 或者 (String, Bool) 或者其他任何你想要的组合的元组。
五、可选类型
使用可选类型(optionals)来处理值可能缺失的情况。C 和 Objective-C 中并没有可选类型这个概念。可选类型表示:
- 有值,等于 x
或者 - 没有值,为nil
例如:Swift 的 Int 类型有一种构造器,作用是将一个 String 值转换成一个 Int 值。然而,并不是所有的字符串都可以转换成一个整数。字符串 "123" 可以被转换成数字 123 ,但是字符串 "hello, world" 不行。
let possibleNumber = "123"
let convertedNumber = Int(possibleNumber)
// convertedNumber 被推测为类型 "Int?", 或者类型 "optional Int"
//因为该构造器可能会失败,所以它返回一个可选类型(optional)Int,而不是一个 Int。一个可选的 Int 被写作 Int? 而不是 Int。问号暗示包含的值是可选类型,也就是说可能包含 Int 值也可能不包含值。(不能包含其他任何值比如 Bool 值或者 String 值。只能是 Int 或者什么都没有。)
网友评论