1.Xcode playground
如果想创建 iOS playground 则需要引入 UIKit :
2.常量和变量(Constants and Variables)
let定义常量,定义完成后不可修改
var定义变量,可修改。
3.常量和变量的类型: Int, Double, Bool, Tuple
- Bool:True,False
-
Tuple:tuple用于传递复合类型的数据,介于基础类型和类之间,复杂的数据通过类(或结构)存储,稍简单的通过元组.不管是可变还是不可变元组,元组在创建后就不能对其长度进行增加和删除之类的修改,只有可变元组能在创建之后修改元组中的数据
4.Type Safety and Type Inference
Type Safety (类型安全):会在编译代码时进行类型检查(type checks),并把不匹配的类型标记为错误。这可以在开发的时候尽早发现并修复错误。
Type Inference(类型推断):处理不同类型的值时,类型检查可以避免错误。
5.optional(可选择)
- 用于处理值缺失的情况。
- 含有两种情况的枚举,None 和 Some(T)
- 使用操作符!去获取值为nil的可选变量会有运行时错误。
-
可以用可选链接和可选绑定选择性执行可选表达式上的操作。如果值为nil,任何操作都不会执行,也不会有运行报错。
“?”与“!”的区别:‘?‘表示不一定能够实例化出对象,“!”表示告诉编译器一定有值,编译能够通过,如果运行时没有值就会直接崩溃。
强制解析:确定可选类型确实包含值之后,可以在可选的名字后面加一个感叹号(!)来获取值。例:
注:使用!来获取一个不存在的可选值会导致运行时错误。使用!来强制解析值之前,一定要确定可选包含一个非nil的值。
import Cocoa
var myString:String?
myString = "Hello, Swift!"
if myString != nil {
print(myString!)
//强制解析
}else{
print("myString 值为 nil")
}
自动解析:使用‘!’代替‘?’
import Cocoa
var myString:String!
myString = "Hello, Swift!"
if myString != nil {
print(myString)
}else{
print("myString 值为 nil")
}
可选绑定:用来判断可选类型是否包含值,如果包含就把值赋给一个临时常量或者变量。(if let …)
import Cocoa
var myString:String?
myString = "Hello, Swift!"
if let yourString = myString {
print("你的字符串值为 - \(yourString)") //你的字符串值为-Hello,Swift!
}else{
print("你的字符串没有值")
}
6.Basic Operators (基本运算符)- unary, binary, or ternary
unary:’-’,’!’
binary: +,-,*,/,%
ternary: C?A:B