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是類型安全的語言,必須是相同類型的參數(shù),才能參與運算
- 開發(fā)選擇
- 優(yōu)先選擇常量(比較安全的寫法),如果需要修改選擇變量
- 格式:
3.基本數(shù)據類型|類型轉換|類型推導
- 整型
- 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條件可以是任何整數(shù)(非0即真)
- Swift
- 引入真正的Bool類型
- Bool (true,false)
- Swift的if條件只是一個Bool的值或則是返回的值是Bool類型的表達式
- C/OC
- Swift 是類型安全的語言
* Swift必須明確數(shù)據類型
* 直接指明數(shù)據類型
* 自動推導類型機制
* 如果取值錯誤會直接報錯,OC不會
* Swift會進行溢出檢查,OC不會
* Swift沒有隱式類型轉換,不允許不同類型的數(shù)據類型進行計算(需進行類型強制轉換)let a = 10 let b = 10.1 a +Int(b) //或者 Double(a)+b
4. 基本運算
- OC
- 有隱式轉換,所以允許不同類型的數(shù)據進行運算
- Swift
- 沒有隱式運算,必須指明類型后才能運算
- 算數(shù)運算符 (+,-,*,/,++,--,--)
- 賦值運算(=,+=,-=,*=,/=,!=)
- 關系運算符(>,<,>=,<=,==,!=)
- 邏輯運算符(! && ||) 基本用法和OC一致,唯一要注意的是Swift中的邏輯運算符只能操作Bool類型數(shù)值,而OC可以操作整型(非0即真)