“Swift 是一种新的编程语言,用于编写 iOS,OS X 和 watchOS应用程序。Swift 结合了 C 和 Objective-C 的优点并且不受 C 兼容性的限制。Swift 采用安全的编程模式并添加了很多新特性,这将使编程更简单,更灵活,也更有趣。Swift 是基于成熟而且倍受喜爱的 Cocoa 和 Cocoa Touch 框架,它的降临将重新定义软件开发。
Swift 的开发从很久之前就开始了。为了给 Swift 打好基础,苹果公司改进了编译器,调试器和框架结构。我们使用自动引用计数(Automatic Reference Counting, ARC)来简化内存管理。我们在 Foundation 和 Cocoa 的基础上构建框架栈使其完全现代化和标准化。 Objective-C 本身支持块、集合语法和模块,所以框架可以轻松支持现代编程语言技术[…]”
常量和变量
func demo3() { // 仅仅定义了类型,并没有设置数值 let x: Int // 常量定义完成类型后,可以有`一次`设置机会 x = 10 // 设置之后,不允许再修改 // x = 20 // Constant 'x' used before being initialized // 常量在使用之前,必须要做初始化 print(x) } /// 如果定义的变量/常量需要指定自己需要的类型,可以使用 `:类型` func demo2() { let x: Double = 10 let y = 10.5 print(x + y) } /// 自动推导 - 可以根据右侧的计算结果,推导出左侧变量/常量的类型 /// Option + Click 热键非常重要,可以快速查看变量的准确类型 /// 但是:Swift 对类型转换要求非常严格,任何不同类型之间的数据,不允许计算 /// Int 和 Double 都是结构体,而 不是基本数据类型! func demo1() { // 整数默认类型是 Int,如果 64 位机器,long/32 位机器就是 int let x = 10 // Swift 中,小数默认是 Double,双精度,精度更高 // OC 默认是 float,浮点数 let y = 10.5 // Binary operator '+' cannot be applied to operands of type 'Int' and 'Double' // print(x + y) // 如果要给不同类型的数据进行计算,必须手动转换类型 // OC 中如果要做类型转换 `(int)y` // Swift中,使用的是 `Int()` 构造函数 `init` print(x + Int(y)) print(Double(x) + y) } func demo() { // 定义常量 let,一旦设置,不能修改 // 定义变量 var,一旦设置,可以修改 // int x = 10; let x = 10 // x = 20 var y = 20 y = 100 print(x) print(y) } 知识点整理 常量与变量的定义 定义常量 let,一旦设置,不能修改;定义变量 var,一旦设置,可以修改 let x = 10 // x = 20 // 常量无法修改 var y = 20 y = 100 整数与小数的默认类型 整数默认类型是 Int,如果 64 位机器,long/32 位机器就是 int 小数默认是 Double,双精度,精度更高 不同数据类型之间的计算,需要注意什么 Swift 对类型转换要求非常严格,任何不同类型之间的数据,不允许计算,必须手动转换类型 let x = 10 let y = 10.5 // Binary operator '+' cannot be applied to operands of type 'Int' and 'Double' // print(x + y) // 如果要给不同类型的数据进行计算,必须手动转换类型 // OC 中如果要做类型转换 `(int)y` // Swift中,使用的是 `Int()` 构造函数 `init` print(x + Int(y)) print(Double(x) + y) 自动推导是什么 可以根据右侧的计算结果,推导出左侧变量/常量的类型 // 因为10 默认是Int类型的,推导出x的类型是Int let x = 10 // 因为10.5 默认是Double类型的,推导出y的类型是Double let y = 10.5 option + Click 热键非常重要,可以快速查看变量的准确类型 显示的指定常量或变量的类型 如果定义的变量/常量需要指定自己需要的类型,可以使用 :类型 // 显示指定x的类型是Double,使用 :类型 let x: Double = 10 常量和变量的使用注意 常量或变量在使用之前,必须要做初始化 let x: Int // 没有初始化,会报异常:Constant 'x' used before being initialized print(x) 常量定义完成类型后,可以有一次设置机会,常量设置之后,不允许再修改 let x: Int // 常量定义完成类型后,可以有`一次`设置机会 x = 10 // 常量设置之后,不允许再修改 // x = 20 常量和变量的选择 只有在需要改变的时候,才应该使用 var 如果从来没有变过的变量,Xcode 会提示使用 let Int 和 Double的本质是什么 结构体
Constant 'x' used before being initialized(常量在使用之前,必须要做初始化) Binary operator '+' cannot be applied to operands of type 'Int' and 'Double' (+ 不能 应用在 Int 类型 和 Double类型) 补充: 所有的Swift基本数据类型都是结构体 Int Double Bool String Float Swift中只要是常量就用let,只要是变量就用var
时间: 2024-10-17 03:37:48