
内容介绍
《D程序设计语言》言是一本介绍D语言的权威书籍,全面、系统、专业地讲解了D语言相关的内容。书中涵盖了D语言的方方面面,不但介绍了语言的表达式、语句、类型、函数、契约、模块、类和结构等基本内容,还通过常见示例,深入解释了所有语言特性,讲解了如何将语言特性进行组合以支持重要的编程范型,阐述了每一项主要特性的基本原理,对它们的最佳用途给出了建议,并对跨领域的问题(如错误处理、契约编程和并发性)进行了讨论。
章节目录
第1章 进入D世界1.1 数字与表达式1.2 语句1.3 函数基础1.4 数组与关联数组1.4.1 构建词汇表1.4.2 数组分割、泛型函数、单元测试1.4.3 频率统计、λ函数1.5 基本数据结构1.6 接口和类1.7 值与引用1.8 小结第2章 基本类型、表达式2.1 符号2.2 字面量2.2.1 布尔字面量2.2.2 整数字面量2.2.3 浮点数字面量2.2.4 字符字面量2.2.5 字符串字面量2.2.6 数组与关联数组字面量2.2.7 函数字面量2.3 操作符2.3.1 左值和右值2.3.2 隐式数值转换2.3.3 数值操作符的类型2.3.4 基本表达式2.3.5 后缀表达式2.3.6 一元表达式2.3.7 幂表达式2.3.8 乘法表达式2.3.9 加法表达式2.3.10 移位表达式2.3.11 in表达式2.3.12 比较操作符2.3.13 按位操作符2.3.14 逻辑与2.3.15 逻辑或2.3.16 条件操作符2.3.17 赋值表达式2.3.18 逗号表达式2.4 小结和快速参考第3章 语句3.1 表达式语句3.2 复合语句3.3 if语句3.4 static if语句3.5 switch语句3.6 final switch语句3.7 循环语句3.7.1 while语句3.7.2 do-while语句3.7.3 for语句3.7.4 foreach语句3.7.5 数组foreach3.7.6 continue语句和break语句3.8 goto语句3.9 with语句3.10 return语句3.11 throw语句和try语句3.12 mixin语句3.13 scope语句3.14 synchronized语句3.15 asm语句3.16 小结和快速参考第4章 数组、关联数组和字符串4.1 动态数组4.1.1 长度4.1.2 边界检查4.1.3 分割4.1.4 复制4.1.5 相等性比较4.1.6 拼接4.1.7 数组表达式4.1.8 收缩4.1.9 扩张4.1.10 对.length赋值4.2 固定大小的数组4.2.1 长度4.2.2 边界检查4.2.3 分割4.2.4 复制和隐式转换4.2.5 相等性比较4.2.6 拼接4.2.7 数组运算4.3 多维数组4.4 关联数组4.4.1 长度4.4.2 读写槽4.4.3 复制4.4.4 相等性比较4.4.5 移除元素4.4.6 迭代4.4.7 将自定义类型作为键4.5 字符串4.5.1 代码点4.5.2 编码4.5.3 字符类型4.5.4 字符数组 + 优势 = 字符串4.6 数组的远房表亲:指针4.7 小结和快速参考第5章 数据与函数、函数式5.1 编写一个简单函数并进行单元测试5.2 传递约定和存储类别5.2.1 ref参数与返回5.2.2 in参数5.2.3 out参数5.2.4 static数据5.3 类型参数5.4 签名约束5.5 重载5.5.1 偏序函数5.5.2 跨模块重载5.6 高阶函数、函数字面量5.7 嵌套函数5.8 闭包5.9 超越数组、范围、伪成员5.9.1 伪成员和@property属性5.9.2 reduce——不只是证法5.10 可变参数函数5.10.1 同构可变参数函数5.10.2 异构可变参数函数5.11 函数属性5.11.1 纯函数5.11.2 函数属性nothrow5.12 编译时计算第6章 类、面向对象风格6.1 类6.2 对象名就是引用6.3 对象的生命周期6.3.1 构造函数6.3.2 转发构造函数6.3.3 构造步骤6.3.4 析构与解除分配6.3.5 拆毁步骤6.3.6 静态的构造函数与析构函数6.4 方法和继承6.4.1 术语大杂烩6.4.2 继承就是子类型化,静态类型和动态类型6.4.3 改写只能是自愿的6.4.4 调用被改写的方法6.4.5 协变返回类型6.5 静态成员的类级封装6.6 使用final方法来限制扩展性6.7 封装6.7.1 private6.7.2 package6.7.3 protected6.7.4 public6.7.5 export6.7.6 封装到什么程度6.8 一统天下的根类6.8.1 string to String()6.8.2 sizet to Hash()6.8.3 boolop Equals(Object rhs)6.8.4 intop Cmp(Object rhs)6.8.5 static Object factory(string class Name)6.9 接口6.9.1 非虚接口(NVI)惯用法6.9.2 protected原语6.9.3 选择性实现6.10 抽象类6.11 嵌套类6.11.1 函数嵌套类6.11.2 静态嵌套类6.11.3 匿名类6.12 多重继承6.13 多重子类型化6.14 参数化的类和接口6.15 小结第7章 其他自定义类型7.1 结构7.1.1 复制语义7.1.2 将结构对象传递给函数7.1.3 结构对象的生命周期7.1.4 静态构造函数和析构函数7.1.5 方法7.1.6 静态成员7.1.7 访问指示符7.1.8 嵌套结构和类7.1.9 在函数内部嵌套结构7.1.10 结构子类型化与@disable属性7.1.11 字段布局与对齐7.2 联合7.3 枚举值7.3.1 枚举类型7.3.2 枚举特性7.4 别名7.5 使用模板实现参数化作用域7.6 使用mixin模板注入代码7.7 小结与参考第8章 类型修饰符8.1 immutable修饰符8.2 immutable的书写8.3 immutable参数和方法8.4 immutable构造函数8.5 immutable相关的转换8.6 const修饰符8.7 const与immutable进行交互8.8 将修饰符从参数传送至结果8.9 小结第9章 错误处理9.1 抛出与捕捉9.2 类型9.3 finally子句9.4 nothrow函数和Throwable的特殊本质9.5 附属异常9.6 栈展开与异常安全代码9.7 未捕捉的异常第10章 契约编程10.1 契约10.2 断言10.3 前置条件10.4 后置条件10.5 不变量10.6 跳过契约检查与发行版本10.6.1 enforce不(完全)是assert10.6.2 assert(false)10.7 契约:请不要用于洗涤输入10.8 契约与继承10.8.1 继承与in契约10.8.2 继承与out契约10.8.3 继承与invariant契约10.9 接口里的契约第11章 扩展性11.1 包和模块11.1.1 import声明11.1.2 模块搜索根目录11.1.3 名字查找11.1.4 public import声明11.1.5 static import声明11.1.6 选择性导入11.1.7 在导入里重新命名11.1.8 module声明11.1.9 模块摘要11.2 安全性11.2.1 定义行为和未定义行为11.2.2 @safe、@trusted和@system属性11.3 模块的构造函数与析构函数11.3.1 模块内的执行顺序11.3.2 跨模块的执行顺序11.4 文档注释11.5 与C和C++进行交互11.6 deprecated声明11.7 version声明11.8 debug声明11.9 D语言标准库第12章 操作符重载12.1 重载操作符12.2 重载一元操作符12.2.1 使用mixin加强操作符定义12.2.2 后增值与后减值12.2.3 重载cast操作符12.2.4 三元操作符重载测试和if测试12.3 重载二元操作符12.3.1 操作符重载的平方12.3.2 交换律12.4 重载比较操作符12.5 重载赋值操作符12.6 重载索引操作符12.7 重载分割操作符12.8 $操作符12.9 重载foreach12.9.1 带有迭代原语的foreach12.9.2 带有内部迭代的foreach12.10 在类里定义重载操作符12.11 完全不一样的重载:op Dispatch12.12 小结与快速参考第13章 并发性13.1 并发门13.2 数据共享简史13.3 快瞧瞧,没有(默认)共享13.4 启动线程13.5 线程间的信息交换13.6 receive的模式匹配13.6.1 首次匹配13.6.2 匹配所有消息13.7 文件复制——稍有改变13.8 线程终止13.9 带外通信13.10 邮箱堵塞13.11 shared类型修饰符13.12 shared数据操作及其效果13.13 使用synchronized类实现基于锁的同步13.14 synchronized类里的字段类型化13.14.1 临时保护==无脱离13.14.2 局部保护==尾部共享13.14.3 强制同质的互斥量13.14.4 不可思议:shared可被强制转换掉13.15 死锁与synchronized语句13.16 使用shared类进行无锁编码13.16.1 shared类13.16.2 几种无锁结构13.17 小结
使用说明
1、下载并解压,得出pdf文件2、如果打不开本文件,请务必下载pdf阅读器
3、安装后,在打开解压得出的pdf文件
4、双击进行阅读试读>
下载仅供下载体验和测试学习,不得商用和正当使用。
下载体验