- 主题:null 是个大错误
实际上应该是Union<T, NullType>/Maybe T这样的类型
所以当代语言都支持Optional类型
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 编程语言最基本的类型,整型、浮点都是没有 null 值的。一般用零来表示“无”这个意思。
: 诚然,很多语言比如 python, java 的字符串和数字类型可以赋值为 null. 其实不对,字符串为空的时候应该用零长度字符串,而不是空指针。在 python, java 语言里面,把数字和字符串变量赋值为 null 都是不合理的代码。
: 这不禁让我发出这个疑问,拥有“空”这个语义是不是应该交由类型来决定才对?
: ...................
--
修改:tgfbeta FROM 117.13.123.*
FROM 117.13.123.*
应该在parameter list里加一个Error **的pass by ref的错误值输出。
检查这个指针是不是null再处理返回值
【 在 roy (天上掉大饼:学思行言) 的大作中提到: 】
: C里面空指针不用NULL用啥?
: 其他语言可以讨论。。。
: 比如find_one_by_key()这种,在找不到的情况下应该返回啥
: ...................
--
修改:tgfbeta FROM 117.13.123.*
FROM 117.13.123.*
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 标 题: Re: null 是个大错误
: 发信站: 水木社区 (Tue Aug 18 00:23:19 2020), 站内
:
: c 语言是个低级语言,跟硬件打交道的,自然需要 null pointer
:
: 但高级语言不那么在乎效率的话,应该抛弃 null 了。
:
: find_one_by_key() 抛出 KeyError 啊,或者,我觉得更正确的是返回这个类型的空值,比如数字就返回 0,字符串就返回 ""。返回 null 有歧义,到底是没有这个 key 对应的值呢,还是程序员往这个 key 里面写入了 null 值?
这个可不行,数字的0是在数字的空间里,null不在这个空间里。
就像梨不能代表苹果,僵尸不能代表红脖折磨僵尸家族一样。完全是不同的东西。
有的时候是可以,但严格的来讲不可以不加区分的滥用。
:
: 【 在 roy (天上掉大饼:学思行言) 的大作中提到: 】
: : C里面空指针不用NULL用啥?
: : 其他语言可以讨论。。。
: : 比如find_one_by_key()这种,在找不到的情况下应该返回啥
: : ...................
:
: --
: 灭绝人性啊
:
:
: ※ 来源:·水木社区 newsmth.net·[FROM: 112.47.122.*]
--
FROM 111.161.241.*
有足够语法糖,就真的好用。
【 在 xeagle (静下心来编程) 的大作中提到: 】
: Optional真的好用?至少Java里的Optional只是个工具类而已,还是要判断是否为null
--
FROM 111.161.241.*
语法糖是指Swift里的 ? ?? 和! 以及if let等等
还有kotlin的? !!等
【 在 xeagle (静下心来编程) 的大作中提到: 】
: 这根本不是语法糖好不好,只是个工具类而已。谁都可以写一个出来
--
FROM 111.161.241.*
重点在于一个具体类型和一个Null类型不能在一个空间表达。
【 在 roy (天上掉大饼:学思行言) 的大作中提到: 】
: 那不还是用了NULL?
--
FROM 218.69.52.*
指针类型可以nullable,类似int,float这样的类型,本身没给null留位置
如果你硬挤进去一个null,就会有原本可以表达的值被挤掉
【 在 roy (天上掉大饼:学思行言) 的大作中提到: 】
: 具体类型为什么就一定不能nullable?Error就不是具体类型了?
: 我还是觉得缺省non-nullable,需要nullable的时候显式声明比较好
--
FROM 218.69.52.*
指针可以nullable,因为空指针没有良好定义
这个要看你描述的语言是值类型占主流还是引用类型占主流吧
我的理解
【 在 roy (天上掉大饼:学思行言) 的大作中提到: 】
: 我问的是,为什么具体类型**一定**不能nullable
: 因为有些类型不需要nullable,就不允许其他所有类型nullable吗?
--
FROM 117.13.123.*