Lobsters | 原文链接 | 2026-09-14 收录

我喜欢的几个编程语言设计

来源: prydt.xyz — 2026-05-10

概述

Pranoy Dutta 挑了三个他觉得优雅的语言特性。第一是流类型:在 Crystal 里变量可以在生命周期中改变类型,编译器给出精确推断——某个区域里它确定是 String,分支之外则是 Int32 | String 的联合,想调用 String 方法必须先做类型收窄;这让静态编译语言用起来像动态语言,却几乎没有运行时开销,TypeScript 也有类似的类型收窄。第二是借用检查:Rust 用「借用不得长于所有者」与「要么一个可变引用、要么任意多个不可变引用」两条规则在编译期消灭数据竞争,本质上是把读写锁的直觉变成了类型规则,代价只是编译期复杂度。第三是契约式编程:把 assert 升级为 D 语言的 in/out 前置后置条件与类级 invariant,比如 BankAccount 用 invariant 保证余额非负,比在每个方法前后手写检查干净得多。

核心要点

金句

我喜欢借用检查,因为它对数据竞争这个问题给出了一个非常优雅的答案。
返回 Lobsters 首页