0%

由于 Lua 强调可移植性和嵌入型,所以 Lua 本身并没有提供太多与外部交互的机制。在真实的 Lua 程序中,从图形、数据库到网络访问等大多数 I/O 操作,要么由宿主程序实现,要么通过不包括在发行版中的外部库实现。Lua 本身只提供了 ISO C 语言标准库支持的功能,即基本的文件操作。

这篇文章介绍 Lua 中的 I/O 机制,同时补充一些 Lua 编程的基础知识。

阅读全文 »

Lua 表是 Lua 中最重要的数据结构(也是唯一的数据结构),Lua 的全局变量、模块组织等功能都与 Lua 表相关,Lua 表很好地体现了 Lua 精简的设计思路。任何一门编程语言都会提供函数,以实现代码的模块化、抽象化,而 Lua 也不例外。这篇文章将学习 Lua 中的表和函数。

阅读全文 »

在 Lua 5.2 及之前版本,所有数值都以双精度浮点格式表示。从 Lua 5.3 开始,Lua 语言为数值提供了两种选择:

  • 被称为 integer 的 64 位整型
  • 被称为 float 的双精度浮点类型

整型的引入是 Lua5.3 的一个重要标志。在精简 Lua 模式下(small lua),该模式使用 32 位整型和单精度浮点类型。

这篇文章将学习 Lua 的数值(number) 和字符串(string)类型。

阅读全文 »

这篇文章将介绍 Rust 中的一些高级特性,这些特性在一些特定的场景中非常有用,这些特性包括:

  • 不安全的 Rust:舍弃 Rust 的某些安全保障并负责手动维护相关规则
  • 高级 trait:关联类型、默认类型参数、完全限定语法、超 trait 以及与 trait 相关的 newtype 模式
  • 高级类型:更多关于 newtype 模式的内容、类型别名、never 类型和动态大小类型
  • 高级函数和闭包:函数指针与返回闭包
  • 宏:在编译器生成更多代码的方法
阅读全文 »

模式是 Rust 中一种用来匹配类型结构的特殊语法,将模式与 match 表达式或其他工具配合使用可以更好地控制程序流程。模式被用来与某个特定的值进行匹配。如果模式与值匹配成功,那么就可以在代码中使用这个值的某些部分。这篇文章将学习所有可以使用模式匹配的场景、不可失败模式与可失败模式之间的区别,以及代码中可能会出现的各种模式匹配语法。

阅读全文 »

安全且高效地处理并发编程是 Rust 的另一个主要目标。借助所有权和类型检查,许多并发问题可以在 Rust 中暴露为编译时错误而不是运行时错误。Rust 的这一特性称为 无畏并发(fearless concurrency),无畏并发让你编写出没有诡异缺陷的代码,并且易于重构而不会引入新的缺陷。

阅读全文 »

指针是一个通用的概念,它指代那些包含内存地址的变量。Rust 中最常用的指针就是之前介绍过的 引用。引用是用 & 符号表示的,会借用它所指向的值。引用除了指向数据之外没有任何其他功能,也没有任何开销,它是 Rust 中最常见的指针。而智能指针(smart pointer)则是一些数据结构,它们的行为类似于指针但是拥有额外的元数据和附件功能。Rust 标准库中不同的智能指针提供了比引用更为强大的功能。

阅读全文 »