| 语言 | 格式 | 评分 |
|---|---|---|
英语 | .pdf | 3 |
| 摘要 | ||
本文档为Julia 1.11.0版本的官方文档,涵盖了语言手册、安装指南、变量、整数与浮点数、数学运算、字符串等基础内容。重点介绍了v1.11版本的新特性,包括:新的Memory类型作为低层级容器,具有更低开销和更快构造函数;public关键字用于声明公共API;ScopedValue实现动态作用域与任务间继承;支持Unicode 15.1。语言变更方面,预编译阶段不再生成代码覆盖率和malloc追踪,缓存文件通过内容哈希验证。编译器/运行时改进包括更新GC启发式算法和注释支持。命令行选项标准化为Main.main入口点,并支持--compiled-modules和--pkgimages设为existing。多线程方面新增:greedy调度器。新增AnnotatedString、AnnotatedChar、AnnotatedIOBuffer类型用于带注释文本。Statistics成为可升级标准库,Distributed的pmap默认使用CachingPool。 | ||
| AI总结 | ||
Julia 1.11.0 是 Julia 语言的一个新版本,于2024年10月8日发布。该文档主要包含手册和发行说明两部分。
**核心新特性:**
- **新增`Memory`类型**:这是一个比`Array`更底层的容器,开销更小、构造更快。`Array`类型现在基于`Memory`实现,提升了`push!`等函数的性能。
- **新增`public`关键字**:用于声明公共API,但与`export`不同,`public`的名称在使用包时不会自动被导入。
- **新增`ScopedValue`**:实现了跨任务的动态作用域继承。
- **支持多版本`Manifest.toml`**:文件可命名为`Manifest-v{major}.{minor}.toml`,以便不同Julia版本管理各自的环境。
- **支持Unicode 15.1**。
- **标准化入口点**:新增`Main.main(args)`函数,需通过`@main`宏显式启用。启用后,运行脚本或表达式时会自动执行该函数。
**主要语言与工具变更:**
- **预编译优化**:`atexit`钩子现在在保存输出文件前运行;预编译阶段不再生成代码覆盖率和内存追踪信息,以加快测试速度。
- **缓存文件改进**:预编译缓存文件现在可重定位,其有效性通过源文件的内容哈希(而非修改时间)来验证。
- **编译器/运行时**:改进了GC(垃圾回收)启发式算法,支持对代码块进行`Base.@assume_effects`注解。
- **命令行选项**:`--compiled-modules`和`--pkgimages`可设为`existing`,仅加载现有缓存而不创建新缓存;`--project`参数支持`@script`来指定相对于脚本文件的路径。
- **多线程**:`Threads.@threads`新增`:greedy`调度器,适用于非均匀工作负载;新增`Base.Lockable`结构体,用于将资源与其锁捆绑管理。
- **新库函数**:新增了`AnnotatedString`、`AnnotatedChar`和`AnnotatedIOBuffer`三种类型,用于处理带有注释(如样式信息)的文本。
- **标准库升级**:`Statistics`库现在可升级;`Distributed`库的`pmap`默认使用`CachingPool`。
- **弃用项**:`Base.map`、`Iterators.map`和`foreach`的单参数方法已被移除。
- **外部依赖**:`libuv`库更新至v1.48.0;终端能力检查不再调用`tput`,改用纯Julia的terminfo解析器;terminfo数据库默认随Julia一同发布。
- **工具改进**:CI现在会对所有PR进行自动拼写检查。
**与其他语言(以R为例)的对比:**
文档中详细列出了Julia与R的关键区别,例如:
- Julia的索引从1开始,而R从1开始。
- Julia的数组赋值是引用共享,而R的`=`会复制数据。
- Julia使用`end`来结束代码块。
- Julia的`*`运算符用于矩阵乘法,而元素乘法使用`.*`。
- Julia不将0和1视为布尔值。
- Julia的统计功能主要通过包(如`Distributions`、`DataFrames`)提供,而非内置在核心语言中。 | ||
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余
1975 页请下载阅读 -
文档评分














Julia 1.11.0 Documentation