首页 » 网站建设 » phpmapkey整型技巧_Go措辞零值得设计哲学golang

phpmapkey整型技巧_Go措辞零值得设计哲学golang

访客 2024-12-19 0

扫一扫用手机浏览

文章目录 [+]

在之前视频里面讲过,如果利用go措辞去读mysqerror,去读redis,如果读不到数据,它会返回一个error。
为什么这么设计?便是如果读到一个空构造体,空字符串,如果没有返回error,代表根据查询条件查不到对应的记录。
如果没有到l,代表数据库里面确实存在这样的记录,只不过它对应的字段都为空值。

以是当从一个地方读到一个空值,这个空值能不能直接用取决于其余一个变量,便是error。
本日再来举其余两个例子,来体会一下go措辞里面关于zero value的设计哲学。

phpmapkey整型技巧_Go措辞零值得设计哲学golang

来看这两段代码,非常大略。

phpmapkey整型技巧_Go措辞零值得设计哲学golang
(图片来自网络侵删)

·第一个是先搞了一个channel,紧接着把它给关闭了,然后去读这个channel。
当channel已经关闭的情形之下,总是可以从里面读出数据的,纵然它为空,也能够读出对应的0值。
这个0值取决于里面的数据类型,如果是整型,读出来的便是数字0。
如果是字符串,读出来的便是空字符串。
如果是bool类型,读出来的便是false。

以是这个时候就有一个困惑,便是读出来一个0,这个0是由于channel被关闭了,导致读出来0。
还是由于别人往channel里面放了一个数字0,导致读出来0不知道。

·同理再来看下面这个map,mapkey是字符串,value是整型。
根据这样一个key去读出对应的value,由于这个key里面实际上不存在这样一个key,读出来的value便是0值。
这个0值便是整型,对应的0值便是数字0。

这个时候存在同样的困惑,也不知道是由于这个k它不存在,导致读出来value为0。
还是由于这个k它存在,只不过它对的value本来便是0。

面对这两种困境怎么处理?go措辞的方案是返回两个值,实际上读channel还返回其余一个bool变量,这个bool变量仅当它为true的时候才可以放心大胆地去用value。
同理去读一个map,它也会返回其余一个变量,也是一个bool值。
仅当这个bool值为true的时候才可以放心大胆地去用value。
一旦是加上这两个if判断,创造这两个print都不会输出。

总结一下go措辞关于0值的设计哲学,当从一个地方去读取数据,这个数据如果是0值如何判断是由于容器里面本来就放着一个0值,还是容器里面根本就不存在天命据?须要根据函数返回的其余一个变量来判断。

标签:

相关文章

php为无色透明技巧_水货钻石其实也还行

从各种钻石中,可以看到大大小小的“包裹体” 图片来源:参考文献包裹体的种类多样。比钻石形成更早的包裹体,叫“原生包裹体”;与钻石同...

网站建设 2024-12-19 阅读1 评论0

phpstudy发送gbk技巧_php的文件上传

这里首先声明一下这一章的内容比较多,比较难,你要抱着和自己去世磕的态度。细微之处不放过,多敲多练是王道。 学习就像爬山,得一步一步...

网站建设 2024-12-19 阅读1 评论0