登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入 新註冊 | 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / EMS,時效:出貨後2-3日

2024年10月出版新書

2024年09月出版新書

2024年08月出版新書

2024年07月出版新書

2024年06月出版新書

2024年05月出版新書

2024年04月出版新書

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

『簡體書』Swift语言快速入门

書城自編碼: 2466757
分類: 簡體書→大陸圖書→計算機/網絡程序設計
作者: 极客学院 编著
國際書號(ISBN): 9787121243288
出版社: 电子工业出版社
出版日期: 2014-10-01
版次: 1 印次: 1
頁數/字數: 432/635000
書度/開本: 16开 釘裝: 平装

售價:NT$ 531

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
冯友兰和青年谈心系列:看似平淡的坚持
《 冯友兰和青年谈心系列:看似平淡的坚持 》

售價:NT$ 254.0
汉字理论与汉字阐释概要 《说解汉字一百五十讲》作者李守奎新作
《 汉字理论与汉字阐释概要 《说解汉字一百五十讲》作者李守奎新作 》

售價:NT$ 347.0
汗青堂丛书144·决战地中海
《 汗青堂丛书144·决战地中海 》

售價:NT$ 765.0
逝去的武林(十周年纪念版 武学宗师 口述亲历 李仲轩亲历一九三零年代武人言行录)
《 逝去的武林(十周年纪念版 武学宗师 口述亲历 李仲轩亲历一九三零年代武人言行录) 》

售價:NT$ 250.0
唐代冠服图志(百余幅手绘插画 图解唐代各类冠服 涵盖帝后 群臣 女官 士庶 军卫等 展现唐代社会风貌)
《 唐代冠服图志(百余幅手绘插画 图解唐代各类冠服 涵盖帝后 群臣 女官 士庶 军卫等 展现唐代社会风貌) 》

售價:NT$ 398.0
知宋·宋代之科举
《 知宋·宋代之科举 》

售價:NT$ 454.0
那本书是(吉竹伸介与又吉直树 天才联动!)
《 那本书是(吉竹伸介与又吉直树 天才联动!) 》

售價:NT$ 454.0
传播的跃迁:人工智能如何革新人类的交流
《 传播的跃迁:人工智能如何革新人类的交流 》

售價:NT$ 505.0

建議一齊購買:

+

NT$ 621
《 Swift开发实战 》
+

NT$ 891
《 iOS 8开发指南 》
+

NT$ 711
《 Cocos2d-x 3.x游戏开发之旅 》
+

NT$ 585
《 iOS开发进阶 》
編輯推薦:
《Swift语言快速入门》内容翔实,实例丰富,同步新版官方API文档和语法。语法|词法|框架覆盖全面,实战案例|配套习题丰富。多位Swift专家联合推荐,不仅是Swift入门书籍,也可做案头工具书

作者携手Swift专家在线答疑,方式如下:1、专属勘误交流论坛(Swift中文帮)2、QQ群(Swift快速入门书友会):259152129
內容簡介:
本书以苹果官方Swift英文文档为基础,以其大纲为主线,从易到难全面阐述了Swift语言的语言基础、基本运算、字符串操作、集合类型、流程控制、函数与闭包、面向对象、高级运算符操作及语法参考等方方面面。此外,本书内容及API已与苹果官方英文文档同步更新,减少了初学者学习旧版语言文档却不能正常编译代码的困惑。
關於作者:
陈少佳,现任极客学院布道师,负责教师团队建设、线上课程建设等工作。
2008年从业至今,曾任外企技术总监、线下培训机构学术总监、副校长,培养过至少1000名月薪过万的Android、iOS开发工程师。
李艺(网名:蜗牛君),苏州人士,清华计算机硕士,极客学院Swift专家,木子宁工作室掌门。Adobe中国首批社区帮助管理员与版主,著名iOS独立游戏开发者,爱好书法、箫、吉他等,喜好郊游,偶尔会做义工。
博客地址: www.muzining.com
微博:weibo.comangrymarble
目錄
目录


第1章 马斯堡游记1
1.1 买票1
1.2 导游13
1.3 飞碟22
1.4 斗法23
1.5 题诗27
第2章 Swift初见28
2.1 Hello world28
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 Unicode75
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 Attributes345
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
內容試閱
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或者CC++语言来说,简单太多了。
循环
传统的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 maxa: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{
printlnself
}
}
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有了一个初步的了解,而且迫不及待地想开始学习了,努力吧,少年,你就是未来的太阳!

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.