swift初探
使用swift開發專案已經有一年多了,這一年多的時間裡,蘋果多次升級更改swift語法。這也直接導致每次更新xcode後,專案程式碼做大量的語法更改。哎,也不知道苦逼的swift什麼時候可以穩定下來,swift最奇葩的地方在於更新版本不相容低版本的一些語法。歐啦,抱怨完了,開始我們的swift之旅吧。
在swift的世界裡所有的資料型別都已兩種形式出現,要麼是變數(var),要麼是常量(let),與oc相比簡易了很多。
1、定義變數和常量
var intVariable: int = 42
intVariable = 90
let floatValue: CGFloat = 32
swift 的變數具有型別安全的特性,所有給變數賦的值型別必須和變數型別匹配。否則編譯報錯。
intVariable = 9.9 //編譯報錯
定義變數和常量時如果等號右邊能倒推出資料型別,那麼可以不指定變數型別。
var implicationInt = 2 // implicationType int 型別
var implicationDouble = 2.2 // Double 型別(小數被預設為Double)
2、不同型別賦值
不同型別之間賦值時,不會隱含的轉換為目標型別。所以得明確的指定成目標型別。
implicationInt = Int(implicationDouble) //implicationDouble不能超過Int的最大值
3、陣列、字典
初始化陣列、字典
var books = ["語文","數學"]
var dic = ["bookname":"語文","price":"213"]
建立空陣列、字典
var books = [String]()
var books = Array<String>()
var dic = [String:String]()
var dic = Dictionary<String,String>()
4、控制流 for 迴圈、while迴圈
for迴圈
let individualScores = [75, 43, 103, 87, 12]
var teamScore = 0
for score in individualScores {
if score > 50 {
teamScore += 3
} else {
teamScore += 1
}
}
print(teamScore)
while迴圈和oc稍有改動,把 do{}while(condition) 該為 repeat{}while condition
var n = 2
while n < 100 {
n = n * 2
}
print(n)
var m = 2
repeat {
m = m * 2
} while m < 100
print(m)
5、元祖 Tuples
有的時候我們需要一個函式返回兩個值,在oc中是不能實現的。在swift中引入了一種資料型別: 元祖(Tuples)。元祖是由多個值構成的一個值,其中的每一個值可以為任何資料型別。
let error = (404,"page not found")
let (status, string) = error // status 為404, string 為“page not found”
//如果只想取其中的一個值,
let (status, _) = error
這篇文章不是要講swift資料型別以及其用法,只是讓大家對swift大概有個瞭解,在以後的章節裡會詳細講一下資料型別的用法。
相關文章
- Swift - KVO初探Swift
- swift初探(供objective c開發者參考)SwiftObject
- Swift Protobuf 初探 —— 繼 XML 後,JSON 也要被淘汰了嗎SwiftXMLJSON
- Deno 初探
- ELK初探
- Nginx 初探Nginx
- Mobx 初探
- jQuery初探jQuery
- 初探IndexedDBIndex
- 初探PWA
- Puppeteer 初探
- Redis初探Redis
- 初探Firewalld
- Serverless初探Server
- Promise初探Promise
- Quantum 初探
- 初探TCPTCP
- ## RATreeView 初探View
- puppeteer初探
- Quartz初探quartz
- MapDB初探
- Vue初探Vue
- Docker初探Docker
- angr初探
- Gitee初探Gitee
- 初探canvasCanvas
- pointerEvent 初探
- websoctet初探Web
- RxJava 初探RxJava
- GoLang初探Golang
- Django初探Django
- orm初探ORM
- 初探 TypeScriptTypeScript
- ECharts 初探Echarts
- 初探websocketWeb
- zookeeper初探
- ARKit 初探
- 初探Lucene