print 是语言的重要功能。
我从青年时代就学过 Python, JavaScript, C, C++, Rust
我可是身经百战见得多了,主流的哪个语言我没见过。
Python
魔法方法实现复用组件。
或者
JavaScript/TS
对象 prototype 的 toString 方法
或者 ES6 引入的 class 语法糖
C
- 直接打印 field.
- 用 sprintf 序列化。但是由于需要 malloc, 还需要返回长度,此处略。
由于 C 采用
%x
格式化,无法自定义格式化。C++
重载
<<
可见补充了 C 的一个缺陷。
或者 {fmt} ,此处略。
Rust
impl Debug
类似 python 的 dataclass
或者
类似 python 的
__str__
体现了不同语言对自定义对象提供接口的能力。
从 boilerplate 的角度
Python = Rust > C++ = JS/TS > C