看的是kaisery.github.io的文档,因为会点脚本,所以前5章学的十分顺滑。第6章枚举也看的通,但到了末尾的"Option"我就懵了。
于是我脱离教程,开始搜索相关的内容。
经过数倍于前面的学习时间,我总结了下我所知道的关于"Option"的一切:
如何判断变量X是不是空值?不知道。
Some(5)是干啥的?不知道
<`T>什么意思?T是泛型,<>表示内部是泛型参数。
那么如果<>表示内部是泛型参数,为啥要"T",不能是A-Z呢?不知道
我想问,这部分能跳过吗?感觉超级沮丧。
1
共 6 条评论, 1 页
评论区
写评论技术楼上都说了,我自说自话说点设计意图。希望有所帮助。 option建模了可能空的值后,逼迫程序员在所有可能为空的地方都进行处理。 如果没有Option类型,例如在一些语言中,所有值都可能为空,在语意的表达上就有所欠缺——我光看函数的类型不知道它会不会返回空,必须看实现才知道。最后反而bug满天飞。
谢谢大家,谢谢 @fcbldopb 的示例。 跳过这里,通读了一遍语法部分,也基本上理解了这个特殊枚举的作用。 现在理顺了语法,再看看内置库,应该就可以摸索着写代码了。
与Some对应的是None,就用这个来判断是不是空值(如果你要定义所谓空值的话)。
Some是一个enum。
T就是一个代号,也可以是A~Z。一般用T,表示这里是一个type的意思。
option 和 result本质是enum ,T 默认为所有rust类型, 像result需要俩个就使用了 T 和 E