-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Swift語言快速入門

( 簡體 字)
作者:極客學院類別:1. -> 程式設計 -> 手機程式 -> Swift
譯者:
出版社:電子工業出版社Swift語言快速入門 3dWoo書號: 39717
詢問書籍請說出此書號!

缺書
NT售價: 295

出版日:10/1/2014
頁數:432
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121243288
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

Swift體會
極客學院首席講師 陳劭家(ime)

我不算是一個果粉,但是我很喜歡蘋果的產品,甚至可以說是狂熱。2014年6月2日晚上我一夜未眠,就是在等蘋果的WWDC,這是開發者的狂歡之夜(或者狂歡之日,因為美國時間是白天)。凌晨1點,終于開始了,但是蘋果一次又一次的新產品展示讓我一次又一次的失望,作為開發者的我表示無感。
我堅持看因為我不相信蘋果總是讓我失望。最終在WWDC的最后一個環節,我真心沸騰了,因為一門新的編程語言——Swift出現了。要知道在飽受了Objective-C語言之苦后看見Swift是一種什么心情,你不需要再為引用計數而頭疼,不需要再為沒有命名空間而不得不添加該死的前綴而煩惱,不需要再為Objective-C那難懂的語法而整天暈乎乎的。此外,蘋果還為我們提供了Playground這個工具,它能夠在我們寫程序時實時計算出變量的值,甚至還能呈現數字變量的趨勢圖,讓編程富有樂趣及創造性。
由于Swift出現得晚,所以它擁有了目前世界上幾乎所有編程語言的優點,而沒有目前所有編程語言的缺點,Swift真的太漂亮了。下面我們開始一步一步認識它。
運行速度
從蘋果官方給出的數據來看,Objective-C比Python快2.8倍,而Swift比Python快3.9倍,可見蘋果在Swift上下了大量的工夫進行優化。
開發環境
Swift語言的開發環境是蘋果公司提供的集成開發環境Xcode,可以用來開發iOS應用、iOS游戲、OS X窗體程序、OS X游戲、OS X命令行程序,讀者可以直接從App Store中搜索并下載。用Swift語言可以做到幾乎所有Objective-C所能做到的事情,所以Swift必將取代Objective-C,如果你還沒有學過Objective-C語言,那么恭喜你,不用學了,直接學習Swift即可。
運行環境
Swift被強大的llvm編譯成機器碼,直接運行在系統中。由于Swift是蘋果的產品,所以目前只支持蘋果的系統(OS X和iOS)。我們期待會有社區開發出跨平臺的Swift語言,因為這么好的一門編程語言,應該能夠讓世界上的每一個人享受到才好,就像mono讓C#語言跨平臺一樣。
語言特性
具有所有現代編程語言的特性,包括:面向對象、類擴展、命名空間、閉包、泛型、強類型、函數有多個返回值等。
這些特性能夠大大提高程序員的開發效率,從而為企業節約成本,同時讓編程工作充滿樂趣。
語法簡介
通過前文的介紹,相信讀者已經迫不及待地想嘗試使用Swift了,下面我們就來認識一下Swift的語法。
簡潔的語法
Swift拋棄了Objective-C那種古板難懂的語法,采用通俗易懂的腳本語言類語法,學過Python、JavaScript或者Lua語言的讀者肯定不會陌生,這大大降低了初學者的學習成本。
變量及常量
如果要定義一個變量i等于1,只需要寫var i = 1,可以看出,不需要指定類型,因為Swift會自動做類型推斷。
如果要定義一個常量PI等于3.14,只需要寫let PI = 3.14,常量只能被賦值一次。
輸出語句
在Swift中,可以直接使用println函數來輸出一段任意類型的信息,如下所示:
println("Hello Swift")
字符串連接
Swift語言中的字符串連接同樣也非常簡單,如果兩個值都是字符串,則可直接用加號連接,如下所示:
var hello = "Hello"
var world = "World"
var str = hello + world

如果將要連接的值中有其他類型,則直接使用()包括就可進行連接,如下所示:
var hello = "Hello"
var num = 100
var str = "(hello) (num)"

從上面的示例可以看出,相比Objective-C或者C/C++語言來說,簡單太多了。
循環
傳統的C語言中的for循環是這么寫的:
for (int i = 0; i < 100; i++) {
//TODO
}

在Swift中,將循環大大簡化了,如下所示:
for i in 0..<100{
//TODO
}

具體內容還有很多,詳見本書正文。
條件判斷
條件判斷與C語言并沒有區別,可以直接書寫C語言的語法即可通過,如下所示:
if (count>5) {
//TODO
}

在Swift中還可以再簡潔一些,如下:
if count>5 {
//TODO
}

另外,在Swift語言中,switch…case語句可以不用加break關鍵字。
函數
如果要定義一個函數用來輸出一段信息,則代碼如下所示:
func sayHello(){
println("Hello Swift")
}

這種寫法非常簡潔,我曾在Dart語言中見過這種寫法,func是一個關鍵字,用來指明所定義的是一個函數,sayHello是函數名稱,()中是該函數的傳入參數。如果還想使用傳入參數及返回值,如下所示:
func max(a:Int,b:Int)->Int{
if a>b {
return a
}else{
return b
}
}

該函數名稱為max,可傳入兩個參數,都是整數類型,參數名稱分別為a、b,函數的返回值也是整數類型。
Swift中的函數還可以同時返回多個值,如下所示:
func getNum()->(Int,Int){
return (3,4)
}

如果想對該函數進行調用并獲取到這兩個返回結果值,則用法如下:
let (a,b) = getNum()
面向對象
類的定義非常簡單,如下所示:
class Hello{
func sayHello(){
println("Hello Swift")
}
}

該示例定義了一個名為Hello的類,其有一個成員函數名為sayHello,如果想調用該類及相應函數,則用法如下:
var h = Hello()
h.sayHello()

類的繼承的寫法也非常簡單,這一點繼承了C++語言的優秀傳統,如果想定義一個名為Hi的類繼承自Hello,則寫法如下:
class Hi:Hello{
}

如果后期還想為某類添加功能,有兩種方法。第一種是直接修改類的源碼添加功能,第二種是為該類寫擴展功能,下面我們來著重介紹第二種。如果想為Hello類再添加一個名為sayHi的方法,則代碼如下所示:
extension Hello{
func sayHi(){
println("Hi Swift")
}
}

其中,extension關鍵字表示要擴展已經存在的類的功能,如果想擴展系統或者第三方的某個類的功能而得不到其源碼時,采用這種方式將會是一個絕佳的選擇。如下所示:
extension String{
func printSelf(){
println(self)
}
}
var str = "Hello Swift"
str.printSelf()

通過這種方式擴展了系統的String類,為其增加了一個printSelf方法,在使用時可直接調用目標對象的printSelf()方法,非常方便。
關于面向對象的更多特性,請看本書正文。
其實extension還有另一個用途,那就是模擬命名空間,請看下一個主題。
命名空間
在Swift語言中并沒有專門的命名空間的關鍵字,但是可以模擬命名空間這個面向對象的特性,如下所示:
//定義命名空間ime
class ime{
}

//在ime命名空間下定義Hello類
extension ime{
class Hello{
func sayHello(){
println("Hello Swift")
}
}
}

使用該類及相關方法的代碼如下所示:
var h = ime.Hello()
h.sayHello()

有沒有讓你眼前一亮的感覺呢?
結尾
就寫到這里吧,想必大家已經對Swift有了一個初步的了解,而且迫不及待地想開始學習了,努力吧,少年,你就是未來的太陽!
內容簡介:

本書以蘋果官方Swift英文文檔為基礎,以其大綱為主線,從易到難全面闡述了Swift語言的語言基礎、基本運算、字符串操作、集合類型、流程控制、函數與閉包、面向對象、高級運算符操作及語法參考等方方面面。此外,本書內容及API已與蘋果官方英文文檔同步更新,減少了初學者學習舊版語言文檔卻不能正常編譯代碼的困惑。

目錄:

第1章 馬斯堡游記 1
1.1 買票 1
1.2 導游 13
1.3 飛碟 22
1.4 斗法 23
1.5 題詩 27
第2章 Swift初見 28
2.1 Hello world 28
2.2 簡單值 29
2.3 控制流 30
2.4 函數和閉包 33
2.5 對象和類 35
2.6 枚舉和結構 39
2.7 協議和擴展 42
2.8 泛型 43
第3章 語法入門 45
3.1 基礎 45
3.1.1 常量和變量 45
3.1.2 注釋 48
3.1.3 分號 49
3.1.4 整數 49
3.1.5 浮點數 50
3.1.6 類型安全和類型推斷 50
3.1.7 數值字面量 51
3.1.8 數值類型轉換 52
3.1.9 類型別名 53
3.1.10 布爾值 54
3.1.11 元組 55
3.1.12 可選 56
3.1.13 斷言 60
3.2 基本運算符 61
3.2.1 術語 61
3.2.2 賦值運算符 62
3.2.3 算術運算符 62
3.2.4 求余運算符 63
3.2.5 浮點數求余運算符 64
3.2.6 自增和自減運算符 64
3.2.7 單目負號運算符 65
3.2.8 單目正號運算符 65
3.2.9 復合賦值運算符 65
3.2.10 比較運算符 66
3.2.11 三目條件運算符 66
3.2.12 nil合并運算符 67
3.2.13 區間運算符 68
3.2.14 邏輯運算符 69
3.3 字符串與字符 71
3.3.1 字符串字面量 72
3.3.2 初始化空字符串 73
3.3.3 字符串可變性 73
3.3.4 字符串是值類型 73
3.3.5 使用字符 74
3.3.6 連接字符串和字符 74
3.3.7 字符串插值 75
3.3.8 Unicode 75
3.3.9 計算字符數量 77
3.3.10 比較字符串 78
3.4 集合類型 79
3.4.1 集合的可變性 80
3.4.2 數組 80
3.4.3 字典 84
3.5 流程流 89
3.5.1 for循環 89
3.5.2 while循環 93
3.5.3 條件語句 96
3.5.4 控制轉移語句 103
3.6 函數 108
3.6.1 函數的定義與調用 108
3.6.2 函數參數和返回值 110
3.6.3 函數參數名稱 113
3.6.4 函數類型 119
3.6.5 嵌套函數 122
3.7 閉包 122
3.7.1 閉包表達式 123
3.7.2 尾隨閉包 126
3.7.3 值捕獲 128
3.7.4 閉包是引用類型 130
3.8 枚舉 130
3.8.1 枚舉語法 131
3.8.2 使用switch 語句匹配枚舉值 132
3.8.3 關聯值 133
3.8.4 原始值 135
3.9 類和結構體 136
3.9.1 類和結構體的對比 137
3.9.2 結構體和枚舉是值類型 139
3.9.3 類是引用類型 141
3.9.4 類和結構體的選擇 142
3.9.5 字符串、數組及字典的賦值和復制行為 143
第4章 初級語法 144
4.1 屬性 144
41.1 存儲屬性 144
4.1.2 計算屬性 147
4.1.3 屬性監察器 149
4.1.4 全局變量和本地變量 151
4.1.5 類型屬性 151
4.2 方法 155
4.2.1 實例方法 155
4.2.2 類型方法 160
4.3 下標 163
4.3.1 下標語法 163
4.3.2 下標用法 164
4.3.3 下標選項 164
4.4 繼承 166
4.4.1 定義一個基類 167
4.4.2 子類生成 168
4.4.3 重寫 169
4.4.4 防止重寫 173
4.5 構造 173
4.5.1 存儲屬性的初始賦值 173
4.5.2 自定義構造 174
4.5.3 默認構造器 178
4.5.4 值類型的構造器代理 179
4.5.5 類的繼承和構造 180
4.5.6 通過閉包或函數來設置屬性的默認值 190
4.6 析構 192
4.6.1 析構原理 192
4.6.2 析構實例 192
4.7 自動引用計數 194
4.7.1 ARC的工作原理 195
4.7.2 ARC實踐 195
4.7.3 類實例間的強引用環 196
4.7.4 解決類實例間的強引用環 199
4.7.5 閉包產生的強引用環 205
4.7.6 解決閉包產生的強引用環 207
4.8 可選鏈 210
4.8.1 可選鏈替代可選強制解析 210
4.8.2 為可選鏈定義模型類 211
4.8.3 通過可選鏈獲取屬性 213
4.8.4 通過可選鏈調用方法 214
4.8.5 使用可選鏈獲取下標 214
4.8.6 連接多層鏈 215
4.8.7 可選鏈中返回可選類型的方法 216
4.9 類型轉換 217
4.9.1 定義一個類層次作為例子 217
4.9.2 類型檢查 218
4.9.3 向下轉換 219
4.9.4 Any和AnyObject的轉換 220
4.10 類型嵌套 222
4.10.1 類型嵌套實踐 223
4.10.2 引用嵌套類型 224
第5章 高級語法 225
5.1 擴展 225
5.1.1 擴展語法 225
5.1.2 計算屬性 226
5.1.3 構造器 227
5.1.4 方法 228
5.1.5 可變實例方法 229
5.1.6 下標 229
5.1.7 嵌套類型 230
5.2 協議 231
5.2.1 協議語法 231
5.2.2 屬性要求 232
5.2.3 方法要求 233
5.2.4 可變方法要求 234
5.2.5 協議作為類型 235
5.2.6 集合中的協議類型 240
5.2.7 協議的繼承 241
5.2.8 協議合成 242
5.2.9 檢查協議的一致性 243
5.2.10 可選協議要求 245
5.3 泛型 247
5.3.1 泛型解決的問題 247
5.3.2 泛型函數 248
5.3.3 類型參數 249
5.3.4 命名類型參數 249
5.3.5 泛型類型 250
5.3.6 擴展泛型類型 252
5.3.7 類型約束 253
5.3.8 關聯類型 256
5.3.9 Where 子句 258
5.4 訪問控制 260
5.4.1 模塊和源文件 261
5.4.2 訪問級別 261
5.4.3 訪問控制語法 262
5.4.4 自定義類型 263
5.4.5 子類 265
5.4.6 常量、變量、屬性和下標 266
5.4.7 協議 268
5.4.8 擴展 269
5.5 高級運算符 269
5.5.1 位運算符 270
5.5.2 溢出運算符 274
5.5.3 優先級和結合性 276
5.5.4 運算符函數 277
5.5.5 前置和后置運算符 278
5.5.6 組合賦值運算符 279
5.5.7 比較運算符 280
5.5.8 自定義運算符 280
5.5.9 自定義中置運算符的優先級和結合性 281
第6章 詞法參考 282
6.1 關于詞法參考 282
6.2 詞法結構 283
6.2.1 空白與注釋 283
6.2.2 標識符 283
6.2.3 關鍵字和標點符號 285
6.2.4 字面量 286
6.2.5 運算符 290
6.3 類型 292
6.3.1 類型標注 292
6.3.2 類型標識符 293
6.3.3 元組類型 293
6.3.4 函數類型 294
6.3.5 數組類型 295
6.3.6 字典類型 296
6.3.7 可選類型 296
6.3.8 隱式解析可選類型 297
6.3.9 合成協議 298
6.3.10 元類型 298
6.3.11 類型繼承語法 299
6.3.12 類型推斷 299
6.4 表達式 300
6.4.1 前綴表達式 300
6.4.2 二元表達式 301
6.4.3 賦值表達式 303
6.4.4 三元條件運算符 303
6.4.5 類型轉換運算符 304
6.4.6 主表達式 305
6.4.7 后綴表達式 310
6.5 語句 314
6.5.1 循環語句 315
6.5.2 分支語句 317
6.5.3 帶標簽的語句 320
6.5.4 控制傳遞語句 321
6.6 聲明 322
6.6.1 全局代碼 323
6.6.2 代碼塊 323
6.6.3 導入聲明 324
6.6.4 常量聲明 324
6.6.5 變量聲明 325
6.6.6 類和靜態變量屬性 327
6.6.7 類型別名 328
6.6.8 函數聲明 328
6.6.9 枚舉聲明 332
6.6.10 結構體聲明 334
6.6.11 類聲明 335
6.6.12 協議聲明 336
6.6.13 協議構造器聲明 338
6.6.14 協議下標聲明 338
6.6.15 協議相關類型聲明 338
6.6.16 構造器聲明 339
6.6.17 析構器聲明 340
6.6.18 擴展聲明 340
6.6.19 下標聲明 341
6.6.20 運算符聲明 342
6.6.21 特征聲明修飾符 343
6.6.22 訪問控制級別 344
6.7 特征 345
6.7.1 聲明特征(Declaration Attributes) 345
6.7.2 Interface Builder使用的聲明特征 348
4.7.3 類型特征 348
6.8 模式 349
6.8.1 通配符模式 349
6.8.2 標識符模式 350
6.8.3 值綁定模式 350
6.8.4 元組模式 350
6.8.5 枚舉用例模式 351
6.8.6 類型轉換模式 352
6.8.7 表達式模式 352
6.9 泛型形參和實參 353
6.9.1 泛型形參子句 353
6.9.2 Where 子句 354
6.9.3 泛型參數子句 355
6.10 語法總結 356
6.10.1 語句(Statements) 356
6.10.2 泛型形參與實參(Generic Parameter and Arguments) 358
6.10.3 聲明(Declarations) 358
6.10.4 模式(Patterns) 364
6.10.5 特征(Attributes) 365
6.10.6 表達式(Expression) 365
6.10.7 詞法結構(Lexical Structure) 368
6.10.8 類型(Types) 372
第7章 使用Cocoa框架與ObjC 374
7.1 基本設置 374
7.1.1 建立你的Swift環境 374
7.1.2 理解Swift的導入過程 375
7.2 與ObjC API交互 376
7.2.1 初始化 376
7.2.2 訪問屬性 377
7.2.3 使用方法 377
7.2.4 id兼容性 378
7.2.5 使用nil 379
7.2.6 擴展 380
7.2.7 閉包 381
7.2.8 對象比較 381
7.2.9 Swift類型兼容性 381
7.2.10 Objective-C選擇器 382
7.3 以ObjC的行為寫Swift 383
7.3.1 繼承Objective-C的類 383
7.3.2 適配協議 384
7.3.3 編寫構造器和析構器 384
7.3.4 集成Interface Builder 384
7.3.5 指明屬性特性 386
7.3.6 實現核心數據管理對象的子類 386
7.4 使用Cocoa數據類型 386
7.4.1 字符串 387
7.4.2 數字 387
7.4.3 集合類 388
7.4.4 Foundation數據類型 390
7.4.5 Foundation函數 390
7.4.6 Core Foundation 390
7.5 采用Cocoa設計模式 392
7.5.1 委托 392
7.5.2 錯誤報告 392
7.5.3 鍵值觀察 393
7.5.4 Target-Action 394
7.5.5 內省 394
7.6 與C API交互 395
7.6.1 基本類型 395
7.6.2 枚舉 396
7.6.3 指針 397
7.6.4 全局常量 401
7.6.5 預處理指令 401
7.7 與ObjC混編 402
7.7.1 混編概述 402
7.7.2 在同一個app target中進行代碼導入 403
7.7.3 在同一個framework target中導入代碼 404
7.7.4 導入外部 Framework 405
7.7.5 在Objective-C中使用Swift代碼 406
7.7.6 product模式命名 407
7.7.7 故障排除和提醒 407
7.8 遷移ObjC代碼至Swift 408
7.8.1 為你的Objective-C代碼遷移做好準備 408
7.8.2 遷移過程 408
7.8.3 技巧和提示 409
序: