《Julia语言程序设计》简介:
本书系统介绍Julia编程语言的基本概念、各种功能、编程要点,包含大量示例代码以及编程技巧。全书共17章。第1~2章介绍Julia语言的基本特点、基础概念。第3~4章介绍Julia语言的数值系统、各种运算符使用规则。第5~6章介绍类型系统,以及经典的判断、循环逻辑。第7~8章介绍函数与方法,以及Julia的核心优势——多维数组。第9~11章介绍字符串与日期处理方法以及元编程。第12章介绍与IO相关的内容,包括流、文件操作、网络通信及序列化等。第13章介绍Julia代码的组织方式,包括模块、文件以及包。第14章介绍Julia原生提供的并行计算特性,是Julia中颇具魅力的内容之一。第15章介绍Julia与C/C++、Python进行混合编程的基本方法。第16章总结了Julia编程方面的经验以及优化建议。第17章给出了编程案例。本书内容丰富,讲解细腻,适合于所有软件开发人员,以及高等院校相关专业师生。
《Julia语言程序设计》目录:
前言
第1章 初识Julia1
1.1 有用的资源2
1.2 环境准备4
1.2.1 二进制包安装5
1.2.2 编译安装7
1.3 交互式控制台8
1.4 命名规则与关键字11
1.5 先睹为快12
1.5.1 Hello World12
1.5.2 体型分布案例13
1.5.3 小结18
第2章 基础概念19
2.1 静态与动态语言19
2.2 内存管理20
2.3 经典编程范式21
第3章 数值系统24
3.1 整型24
3.1.1 表达方式25
3.1.2 类型强制限定27
3.1.3 有无符号转换28
3.2 布尔型29
3.3 浮点型30
3.3.1 基本定义31
3.3.2 零的表达32
3.3.3 epsilon34
3.3.4 无穷值35
3.3.5 非数值37
3.3.6 内置常量37
3.4 有理数型38
3.5 复数型40
3.6 随机数42
3.7 任意精度算术43
第4章 运算符46
4.1 算术运算符46
4.2 位运算符51
4.3 更新运算符55
4.4 比较运算符56
4.5 逻辑运算符60
4.6 运算优先级61
4.7 类型提升62
第5章 控制逻辑64
5.1 复合表达式64
5.2 判断逻辑65
5.3 循环逻辑67
5.3.1 while67
5.3.2 for69
5.4 异常处理73
5.4.1 异常触发73
5.4.2 异常捕捉74
第6章 类型系统77
6.1 类型简介77
6.2 抽象类型78
6.3 元类型80
6.4 类型操作83
6.4.1 弱类型机制83
6.4.2 类型断言84
6.4.3 DataType 85
6.4.4 类型别称86
6.4.5 继承关系87
6.5 复合类型88
6.5.1 基本定义88
6.5.2 默认构造函数90
6.5.3 成员访问及不可变性91
6.5.4 单例复合类型93
6.6 类型联合94
6.7 TypeVar96
6.8 类型参数化97
6.8.1 参数化复合类型97
6.8.2 参数化抽象类型102
6.8.3 参数化元类型105
6.8.4 参数化基本原理106
6.8.5 参数化继承关系108
6.8.6 协变与逆变110
6.9 常用数集112
6.9.1 元组113
6.9.2 键值对115
6.9.3 字典117
6.9.4 集合121
6.10 缺失值的表达123
6.10.1 missing123
6.10.2 nothing125
6.10.3 可有可无的表达125
第7章 函数129
7.1 基本定义129
7.1.1 常规结构129
7.1.2 类型限定130
7.1.3 共享传参132
7.1.4 数集展开式调用133
7.1.5 多返回值134
7.2 参数传递方式134
7.2.1 默认参数134
7.2.2 键值参数135
7.2.3 可变参数137
7.3 函数对象140
7.3.1 Function类型140
7.3.2 函数作为参数141
7.3.3 函数作为返回值143
7.4 匿名函数144
7.5 参数化方法146
7.6 多态分发148
7.7 复合类型构造方法153
7.7.1 外部构造方法153
7.7.2 内部构造方法155
第8章 多维数组158
8.1 创建数组158
8.1.1 串联方式160
8.1.2 辅助构造函数163
8.1.3 范围表达式164
8.1.4 推导式168
8.2 索引访问169
8.3 遍历迭代176
8.4 子数组与视图179
8.4.1 范围切片179
8.4.2 逻辑索引180
8.4.3 局部视图180
8.5 稀疏数组182
8.5.1 典型稀疏结构183
8.5.2 结构转换184
8.5.3 内容映射186
8.6 矢量化计算189
8.6.1 map函数189
8.6.2 广播192
8.6.3 点操作193
8.6.4 数组运算符196
8.7 排序197
8.8 查找200
8.9 missing作为元素205
8.10 线性代数中的矩阵处理207
8.10.1 矩阵操作207
8.10.2 特殊矩阵208
8.10.3 矩阵分解211
第9章 字符串217
9.1 字符217
9.2 String对象220
9.2.1 表达220
9.2.2 索引221
9.2.3 遍历223
9.2.4 子串224
9.3 变量替换225
9.4 正则表达式226
9.5 常用操作229
9.5.1 连接229
9.5.2 比较232
9.5.3 搜索232
9.5.4 替换234
9.5.5 分割235
9.6 字节数组237
9.7 与数值的转换239
第10章 元编程241
10.1 Symbol类型241
10.2 Expr类型243
10.2.1 构造243
10.2.2 衍生248
10.3 宏249
10.3.1 定义250
10.3.2 调用250
10.3.3 预定义宏251
第11章 时间与日期255
11.1 类型255
11.2 构造257
11.3 访问260
11.4 解析262
11.5 运算265
11.5.1 早晚比较265
11.5.2 时长计算267
11.5.3 时间序列269
11.5.4 周期舍入270
11.6 属性273
第12章 流与IO275
12.1 标准流275
12.2 文件操作278
12.3 读写缓存281
12.4 流的回溯284
12.5 序列化287
12.6 网络通信290
第13章 组织结构294
13.1 模块294
13.1.1 基本定义294
13.1.2 标准模块296
13.1.3 模块路径298
13.1.4 预编译298
13.2 模块与脚本文件299
13.3 变量域300
13.3.1 全局域302
13.3.2 局部域302
13.3.3 let关键字305
13.4 包309
13.4.1 管理机制309
13.4.2 安装移除312
13.4.3 更新固化317
13.4.4 小结318
第14章 并行计算319
14.1 基础概念319
14.1.1 进程与线程319
14.1.2 条件变量320
14.2 协程调度321
14.3 数据通道325
14.3.1 Channel对象325
14.3.2 通道绑定330
14.4 远程调用与远程引用332
14.5 共享数组345
14.6 方法小结348
第15章 混合编程351
15.1 运行外部程序351
15.2 调用C/C++352
15.2.1 链接库操作352
15.2.2 函数调用353
15.2.3 数据访问356
15.2.4 C++接口358
15.3 嵌入C/C++358
15.4 与Python互调362
第16章 Julia编程规范364
16.1 文档注释364
16.2 高性能编程建议368
16.2.1 类型369
16.2.2 函数373
16.2.3 数组377
16.2.4 IO381
16.2.5 其他381
16.3 与其他语言的异同382
16.3.1 与Python相比382
16.3.2 与Matlab相比384
16.3.3 与R相比385
16.4 Julia代码风格387
第17章 编程实战389
17.1 决策树基本概念389
17.2 决策树分类器的实现391
17.3 随机森林算法的构建406
附录A 内置异常类型409
附录B 内置系统常量411
附录C 字符串操作函数413
附录D 常用包简介416
后记428
· · · · · ·