Tim*_*ews 6 null computer-science nullable language-design
嗨,我最近看了一个关于空指针是如何十亿美元错误的旧视频.他指出C#和java都有运行时检查,但没有完全消除它,这有点可以理解.他还指出C在某一点上他确信这是一个很大的问题.我得到空终止的字符串,没有长度的数组和一些其他的东西是坏的(缓冲区溢出攻击数十亿美元),但要完全删除null?
有些语言已经使null成为过去,其他语言已经尝试替代C,但我找不到哪种语言已经完成了.
如果C的null是如此糟糕,为什么没有人创建它的替代?即Haskell很好,但不能作为替代品.
当你说C like时,它与其他人的方向相同。Scala 以某种方式使用选项案例消除了空值。不过,您仍然可以使用空值。函数式语言没有 null 问题和副作用,但它们不像 c。动态语言也有空值或未定义的变量等。这是你需要为 c 付出的代价,恕我直言。