支持垃圾收集的编程语言

能够支持垃圾收集的编程语言,在绝大多数环境下,当然要比那些不支持这个特性的编程语言方便。就算大家打扫屋子,也是过一段时间打扫一次,而不是一有垃圾马上就动手。 只可惜,自己被这个C++给困住了,周围的项目都是C++,可以访问的库也都是C++,没有机会使用其他支持垃圾收集的编程语言。 当然了,如果不在多个线程之间使用指针传递数据,那么 C++ 提供的 std::unique_ptr 再加上一些编程规范,也能够很好的自动管理内存,不需要关心对象的生命周期,比如: 所有使用 new 申请的内存空间立刻使用 std::unique_ptr 包装起来。 当把这种通过new申请来的数据传递给自己的调用者时,永远返回 std::unique_ptr。 当把这种通过new申请来的数据传递给自己调用的函数时,永远使用原始指针(a.k.a. T* ) 或者常量引用 (a.k.a. const T&)。 所有的程序永远不调用 delete。 这样一来,C++ 的对象作用域规则就可以保证一块数据不再需要的时候通过 std::unique_ptr 的析构函数自动将其释放,如果要在多个线程之间共享数据,那么std::shared_ptr 可以用来管理对象的生命周期,但是它的使用要麻烦很多。 有了 std::unique_ptr和std::shared_ptr,绝大部分实践中这样也已经足够好了。

Some Rants

Daddy got a new website, I want one, too. I love prodigy game, and wants to be a member, although am constantly rejected by my ruthless father. Ben, my young brother, also wants to be a member, specifically, he wants epic spell in the game, although that costs $14.95 and our father considered outrageous.