图书介绍

D程序设计语言PDF|Epub|txt|kindle电子书版本网盘下载

D程序设计语言
  • (美)AndreiAlexandrescu著;张雪平等译 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115314192
  • 出版时间:2013
  • 标注页数:330页
  • 文件大小:93MB
  • 文件页数:350页
  • 主题词:程序语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

D程序设计语言PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 进入D世界1

1.1 数字与表达式2

1.2 语句4

1.3 函数基础5

1.4 数组与关联数组6

1.4.1 构建词汇表6

1.4.2 数组分割、泛型函数、单元测试8

1.4.3 频率统计、λ函数9

1.5 基本数据结构11

1.6 接口和类15

1.7 值与引用19

1.8 小结20

第2章 基本类型、表达式21

2.1 符号22

2.2 字面量23

2.2.1 布尔字面量23

2.2.2 整数字面量23

2.2.3 浮点数字面量24

2.2.4 字符字面量26

2.2.5 字符串字面量26

2.2.6 数组与关联数组字面量29

2.2.7 函数字面量30

2.3 操作符31

2.3.1 左值和右值31

2.3.2 隐式数值转换31

2.3.3 数值操作符的类型34

2.3.4 基本表达式34

2.3.5 后缀表达式37

2.3.6 一元表达式38

2.3.7 幂表达式41

2.3.8 乘法表达式41

2.3.9 加法表达式41

2.3.10 移位表达式41

2.3.11 in表达式42

2.3.12 比较操作符43

2.3.13 按位操作符44

2.3.14 逻辑与45

2.3.15 逻辑或45

2.3.16 条件操作符45

2.3.17 赋值表达式46

2.3.18 逗号表达式46

2.4 小结和快速参考46

第3章 语句49

3.1 表达式语句49

3.2 复合语句50

3.3 if语句50

3.4 static if语句51

3.5 switch语句53

3.6 final switch语句54

3.7 循环语句55

3.7.1 while语句55

3.7.2 do-while语句55

3.7.3 for语句55

3.7.4 foreach语句56

3.7.5 数组foreach57

3.7.6 continue语句和break语句58

3.8 goto语句59

3.9 with语句60

3.10 return语句61

3.11 throw语句和try语句61

3.12 mixin语句62

3.13 scope语句63

3.14 synchronized语句66

3.15 asm语句67

3.16 小结和快速参考67

第4章 数组、关联数组和字符串70

4.1 动态数组70

4.1.1 长度71

4.1.2 边界检查72

4.1.3 分割73

4.1.4 复制73

4.1.5 相等性比较74

4.1.6 拼接75

4.1.7 数组表达式75

4.1.8 收缩76

4.1.9 扩张77

4.1.10 对.length赋值79

4.2 固定大小的数组80

4.2.1 长度81

4.2.2 边界检查81

4.2.3 分割81

4.2.4 复制和隐式转换82

4.2.5 相等性比较82

4.2.6 拼接83

4.2.7 数组运算83

4.3 多维数组83

4.4 关联数组85

4.4.1 长度85

4.4.2 读写槽86

4.4.3 复制86

4.4.4 相等性比较86

4.4.5 移除元素87

4.4.6 迭代87

4.4.7 将自定义类型作为键88

4.5 字符串88

4.5.1 代码点88

4.5.2 编码89

4.5.3 字符类型90

4.5.4 字符数组+优势=字符串91

4.6 数组的远房表亲:指针93

4.7 小结和快速参考95

第5章 数据与函数、函数式98

5.1 编写一个简单函数并进行单元测试98

5.2 传递约定和存储类别100

5.2.1 ref参数与返回101

5.2.2 in参数102

5.2.3 out参数102

5.2.4 static数据103

5.3 类型参数103

5.4 签名约束105

5.5 重载106

5.5.1 偏序函数108

5.5.2 跨模块重载110

5.6 高阶函数、函数字面量111

5.7 嵌套函数113

5.8 闭包114

5.9 超越数组、范围、伪成员116

5.9.1 伪成员和@property属性117

5.9.2 reduce——不只是证法119

5.10 可变参数函数120

5.10.1 同构可变参数函数120

5.10.2 异构可变参数函数121

5.11 函数属性124

5.11.1 纯函数124

5.11.2 函数属性nothrow127

5.12 编译时计算127

第6章 类、面向对象风格132

6.1 类132

6.2 对象名就是引用133

6.3 对象的生命周期136

6.3.1 构造函数137

6.3.2 转发构造函数138

6.3.3 构造步骤139

6.3.4 析构与解除分配140

6.3.5 拆毁步骤141

6.3.6 静态的构造函数与析构函数142

6.4 方法和继承143

6.4.1 术语大杂烩144

6.4.2 继承就是子类型化,静态类型和动态类型145

6.4.3 改写只能是自愿的146

6.4.4 调用被改写的方法147

6.4.5 协变返回类型148

6.5 静态成员的类级封装149

6.6 使用final方法来限制扩展性149

6.7 封装151

6.7.1 private152

6.7.2 package152

6.7.3 protected152

6.7.4 public152

6.7.5 export153

6.7.6 封装到什么程度153

6.8 一统天下的根类155

6.8.1 string toString()156

6.8.2 size_t toHash()156

6.8.3 bool opEquals(Obj ectrhs)156

6.8.4 int opCmp(Object rhs)159

6.8.5 static Obj ect factory(string className)160

6.9 接口161

6.9.1 非虚接口(NVI)惯用法162

6.9.2 protected原语164

6.9.3 选择性实现165

6.10 抽象类166

6.11 嵌套类168

6.11.1 函数嵌套类170

6.11.2 静态嵌套类171

6.11.3 匿名类172

6.12 多重继承172

6.13 多重子类型化175

6.14 参数化的类和接口177

6.15 小结180

第7章 其他自定义类型181

7.1 结构182

7.1.1 复制语义183

7.1.2 将结构对象传递给函数184

7.1.3 结构对象的生命周期184

7.1.4 静态构造函数和析构函数192

7.1.5 方法193

7.1.6 静态成员197

7.1.7 访问指示符197

7.1.8 嵌套结构和类198

7.1.9 在函数内部嵌套结构199

7.1.10 结构子类型化与@disable属性199

7.1.11 字段布局与对齐202

7.2 联合204

7.3 枚举值206

7.3.1 枚举类型208

7.3.2 枚举特性208

7.4 别名209

7.5 使用模板实现参数化作用域211

7.6 使用mixin模板注入代码214

7.7 小结与参考216

第8章 类型修饰符217

8.1 immutable修饰符218

8.2 immutable的书写220

8.3 immutable参数和方法221

8.4 immutable构造函数222

8.5 immutable相关的转换223

8.6 const修饰符225

8.7 const与immutable进行交互226

8.8 将修饰符从参数传送至结果226

8.9 小结227

第9章 错误处理229

9.1 抛出与捕捉229

9.2 类型230

9.3 finally子句232

9.4 nothrow函数和Throwable的特殊本质233

9.5 附属异常234

9.6 栈展开与异常安全代码235

9.7 未捕捉的异常237

第10章 契约编程238

10.1 契约239

10.2 断言240

10.3 前置条件241

10.4 后置条件243

10.5 不变量244

10.6 跳过契约检查与发行版本246

10.6.1 enforce不(完全)是assert247

10.6.2 assert(false)248

10.7 契约:请不要用于洗涤输入248

10.8 契约与继承250

10.8.1 继承与in契约250

10.8.2 继承与out契约252

10.8.3 继承与invariant契约253

10.9 接口里的契约253

第11章 扩展性255

11.1 包和模块255

11.1.1 import声明256

11.1.2 模块搜索根目录257

11.1.3 名字查找258

11.1.4 public import声明260

11.1.5 static import声明261

11.1.6 选择性导入262

1 1.1.7 在导入里重新命名262

11.1.8 module声明264

11.1.9 模块摘要264

11.2 安全性267

11.2.1 定义行为和未定义行为267

11.2.2 @safe、@trusted和@system属性268

11.3 模块的构造函数与析构函数269

11.3.1 模块内的执行顺序270

11.3.2 跨模块的执行顺序270

11.4 文档注释271

11.5 与C和C++进行交互271

11.6 deprecated声明272

11.7 version声明272

11.8 debug声明273

11.9 D语言标准库273

第12章 操作符重载275

12.1 重载操作符276

12.2 重载一元操作符276

12.2.1 使用mixin加强操作符定义277

12.2.2 后增值与后减值278

12.2.3 重载cast操作符278

12.2.4 三元操作符重载测试和if测试279

12.3 重载二元操作符280

12.3.1 操作符重载的平方281

12.3.2 交换律281

12.4 重载比较操作符282

12.5 重载赋值操作符283

12.6 重载索引操作符284

12.7 重载分割操作符285

12.8 $操作符286

12.9 重载foreach286

12.9.1 带有迭代原语的foreach286

12.9.2 带有内部迭代的foreach287

12.10 在类里定义重载操作符289

12.11 完全不一样的重载:opDi spat ch290

12.12 小结与快速参考292

第13章 并发性294

13.1 并发门295

13.2 数据共享简史296

13.3 快瞧瞧,没有(默认)共享299

13.4 启动线程300

13.5 线程间的信息交换302

13.6 receive的模式匹配303

13.6.1 首次匹配305

13.6.2 匹配所有消息305

13.7 文件复制——稍有改变305

13.8 线程终止307

13.9 带外通信308

13.10 邮箱堵塞309

13.11 shared类型修饰符310

13.12 shared数据操作及其效果312

13.13 使用synchronized类实现基于锁的同步313

13.14 synchronized类里的字段类型化316

13.14.1 临时保护==无脱离317

13.14.2 局部保护==尾部共享317

13.14.3 强制同质的互斥量319

13.14.4 不可思议:shared可被强制转换掉320

13.15 死锁与synchronized语句320

13.16 使用shared类进行无锁编码321

13.16.1 shared类322

13.16.2 几种无锁结构323

13.17 小结325

参考文献327

热门推荐