1.导入框架
- OC
#import <Foundation/Foundation.h>
- Swift
import Foundation
2.常量与变量
- OC中
int const a = 10;//常量
int a =10;//变量
- Swift
- 格式:
- 变量 let 常量名称:[常量类型] = 值
- 变量 var 变量名称:[变量类型] = 值
- 注意点:
- 可以是汉子或Unicode字符
- []内的类型可省略(swift中存在类型自动推导机制)
- 值和类型必须相匹配否则报错
var a = 10; a = 10.1;//报错提示Cannot assign value of type "Double" to type "Int"
- Swift是类型安全的语言,必须是相同类型的参数,才能参与运算
- 开发选择
- 优先选择常量(比较安全的写法),如果需要修改选择变量
- 格式:
3.基本数据类型|类型转换|类型推导
- 整型
- OC
- 有符号:signed
- char 8位
- short int 16位
- int 32位
- long int 64位
- NSInteger 跟平台,CPU相关(32位平台 = int ; 64位平台 = long int)
- 无符号:unsigned
- char
- short int
- int
- long int
- NSInteger
- 有符号:signed
- Swift
- 有符号
- Int8 有符号8位整型
- Int16 有符号16位整型
- Int32 有符号32位整型
- Int64 有符号64位整型
- Int 跟平台相关(默认相当于OC的NSInteger)
- 无符号
- UInt8 有符号8位整型
- UInt16 有符号16位整型
- UInt32 有符号32位整型
- UInt64 有符号64位整型
- UInt 跟平台相关(常用相当于OC的NSUInteger)
- 有符号
- OC
- 浮点型
- OC
- float
- double
- OC
- Swift
- Float:32位浮点型
- Double:64位浮点型(默认)
- Bool类型
- C/OC
- C/OC并没有真正的Bool类型
- C语言的Bool类型非0即真
- OC的Bool类型是typedef signed charBool
- OC中的if条件可以是任何整数(非0即真)
- Swift
- 引入真正的Bool类型
- Bool (true,false)
- Swift的if条件只是一个Bool的值或则是返回的值是Bool类型的表达式
- C/OC
- Swift 是类型安全的语言
* Swift必须明确数据类型
* 直接指明数据类型
* 自动推导类型机制
* 如果取值错误会直接报错,OC不会
* Swift会进行溢出检查,OC不会
* Swift没有隐式类型转换,不允许不同类型的数据类型进行计算(需进行类型强制转换)let a = 10 let b = 10.1 a +Int(b) //或者 Double(a)+b
4. 基本运算
- OC
- 有隐式转换,所以允许不同类型的数据进行运算
- Swift
- 没有隐式运算,必须指明类型后才能运算
- 算数运算符 (+,-,*,/,++,--,--)
- 赋值运算(=,+=,-=,*=,/=,!=)
- 关系运算符(>,<,>=,<=,==,!=)
- 逻辑运算符(! && ||) 基本用法和OC一致,唯一要注意的是Swift中的逻辑运算符只能操作Bool类型数值,而OC可以操作整型(非0即真)