首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

你造null 也能 toString()!

... } val matchPoint = resolveCurrentMatchPoint() 这时候呢,为了检验我的算法是否符合预期,通常我会在这里把这个 MatchPoint 打印出来,不巧的...如果我们写的 Java 的话,也就只好认命了,可现在写的 Kotlin 哎。...toString(): String 这,居然个扩展方法,障眼法啊。如果遇到 receiver 为 null,那么就直接返回 null,可以可以,这很 Kotlin。...如果能对 null 做默认处理,例如如果运算数为 null,那么返回 null,那么前面的代码以目前的情形就只能写成: val result = if(first == null || second...= "If not necessary" 其次,Kotlin 编译器做了很多工作帮我们识别出那些虽然被定义为可空类型但却一定不为空的变量,这种变量通常也得不可变的,也就是说,定义变量时,能定义只读变量就绝对不定义可变变量

3.4K10

成员可能null

C# 8可以让你在编译时就避免null引用错误,它并不是把null值从代码里移除了,而是它可以让你表达意图。具体的做法就是你可以告诉编译器哪个引用可能null的,而哪些引用不可能null。...但是在C# 8之前,如果我们这样调用该方法,那么在编译时不会报错的: image.png 而如果运行程序,那么结果就是: image.png 打开null检查 而在Visual Studio...成员可能null的 如果我想让这些成员可以为null(意图上),那么就需要把它们设置为可null的(意图),在类型后边加上问号“?”...可以有几种办法把这个警告去掉,首先是使用null条件操作符: image.png 如果Addressnull的话,就输出null。...成员不可能null 下面我更改一下思路意图,假设所有的成员都不可能为null,那么修改两个类: image.png 类成员又出现了警告。

56531

.NET78有bug

有人问.NET7/8有没有bug呢?当然有的,而且不少(官方runtime目前没关闭的Issuse大约是5K+)。那为什么平常没有遇到呢?...这里说的BUG是非托管层面的,也就是CLR/JIT那一块C++的代码。 分享一下个人认为具有价值的两个Issuse。...这个Issuse的地址如下: https://github.com/dotnet/runtime/issues/94964 这个Bug非常奇怪,调试几次分层编译,VS就会直接自动退出Debug,因为它退出的时间不固定的...,个人目前无法确认它这个退出的问题点在哪的。...这个问题也很有意思,它实际上新旧版本的问题,同样不影响托管层级的业务代码运行。 可以看到这两个Issuse,第一个隐藏极深的算不上bugbug,第二个基本上不算bug,但影响托管结果。

8010

Bug如何产生的?

大家好,我陶朱公Boy,一个认真生活,总想超越自己的程序员。 前言 知乎上有一个提问:Bug如何产生的? ↓↓↓ 今天,我们就这个话题,一起来做个讨论。...那篇文章我的观点认为,那种一个类成百上千行代码堆在一起,经过一个又一个接盘侠维护后的“屎山代码”,很容易产生bug的。 那产生bug具体涉及到哪些场景呢?...在这里,我深度总结了以下10种场景,与你分享: 编程错误: 最常见的Bug产生原因之一编程错误。本质原因还是程序员代码写的不规范或有漏洞,导致逻辑错误和数据错误。...知友答复 回答一 回答二 回答三 客户这样描述需求的 项目经理这样理解的 设计出来这样的 开发出来的这样的 测试的时候这样的 顾问这样形容的...实施这样的 顾客得到的这个样子的 顾客真正想要的这个样子的 写到最后 感谢您一路陪伴着我,探索编程的奇妙世界。

16410

Linux C程序真的不能访问NULL指针

数字0最特殊的,判断一个值是否为0在硬件层面上也很高效,把0作为非法地址具有高度的可辨识性,于是几乎所有的编程语言都用0来表示非法地址: #define NULL 0 这就是NULL指针的本质。...由于MMU的映射粒度页面,即4096字节(x86_64平台,也可以是别的值,比如2M),所以严格来讲, “非法地址” 并非只有NULL,而是从0到4096的一个页面。...---- 前天晚上,有位朋友问了我一个问题,为了备忘,我昨天发了一则朋友圈: 昨天有人问我说为什么NULL指针不能访问,我说NULL指针可以访问的,NULL就是0,0也是一个合法地址,为什么不能访问?...之所以一访问NULL就会收获一个段错误纯粹编程意义上的人为规定,不存在操作系统硬件层面的硬性机制阻止NULL指针被访问。...char *p; char *p = NULL; 以上二者不同的,上面那个p指针“无”,而下面那个p则是“空”,“无”是什么都没有,“空”实实在在的空,仔细体会这种略带哲学意味的区别。

3.3K10

bug怎么诞生的?

一、概念Bug,指软件中的缺陷,它可能会引发软件失效。二、bug由来Bug一词的原意“昆虫”或“虫子”;而在电脑系统或程序中隐藏着的一些未被发现的缺陷或问题,人们也叫它“bug”。...Bug的创始人格蕾丝·赫柏(Grace Murray Hopper),一位为美国海军工作的电脑专家,也是最早将人类语言融入到电脑程序的人之一。...机房一间第一次世界大战时建造的老建筑。那是一个炎热的夏天,房间没有空调,所有窗户都敞开散热。突然,马克二型死机了。技术人员试了很多办法,最后定位到第70号继电器出错。...程序在一些显示上不美观,不符合用户习惯,或者一些文字的错误1、界面不规范2、辅助说明描述不清楚3、提示窗口文字未采用行业术语4、界面存在文字错误5、改进意见:可以提高产品质量的建议, 包括新需求和对需求的改进相信大家都很重视...五、bug的解决处理方式确认bug重复的bug不是bug无法重现不予解决设计如此延期修改bug能更好的让程序运行,一般处理bug的方式和测试沟通确认,bug就尽快修复,其他原因和测试协商沟通,有些bug

1.1K40

漫画 | Bug如何产生的?

今天这篇漫画的灵感来源于知乎的万赞回答,也有一部分原因是因为最近工作状态的真实写照吧, 它讲述的程序员工作中的bug如何产生的,以及作为一名优秀的程序员,如何把握好你跑路的时间呢?...俗话说:千里之堤,溃于蚁穴,作为一名程序员,或多或少都有类似的经历吧,一个小小的bug,即能把整个系统搞挂。...到最后程序员无法忍受,只好跳槽跑路,新来的接盘侠对项目完全不了解,在迷宫一样的系统里垂死挣扎,改好一个bug引发了另外100个问题,如此反复循环……,而老板/领导完全自我良好,认识不到自己的问题… 程序员真的太难了...… 参考资料 # Bug如何产生的 https://www.zhihu.com/question/365343579/answer/967299388 文中部分素材来源网络,如有侵权,请联系删除...本文已获授权改编自知乎 “哒柏” 的回答《Bug如何产生的?》

80820

java 中将引用置为null能help gc

在idea 搜索help gc 会出现如下图所示结果: ? 可以发现,有很多将引用置为null的操作,然后注释写的help gc 。 那么,这个help gc操作真的有用?...有一种说法,现在jvm已经足够智能,会进行自动优化,不需要这样做。 另一个说法,具体有没有用,得看具体的代码。如果那个引用从来都没有逃逸出去,这样写就是没有什么作用的。...有人说,逃逸分析在1.6才实现,置null 操作在1.6之前可能有些用处。在即使逃逸分析已经很牛的现在,在Tree、链表这种结构中依旧要置null,因为还有一个问题:浮动垃圾。...置null 操作有help gc的作用的。 另外,Effective Java 3rd 的Item7:Eliminate obsolete object references 也讲了这个问题。

2.1K30

只要发现bug,就必须要提

只要发现bug,就必须要提 作者 | 阿常 本篇公众号第 81 篇原创文章,打卡日更写作第 33 天 01....只要发现bug,就必须要提 大家好,我乐天派阿常,一位有着8年管理经验的软件测试人,今天我和大家分享职场思考,发现bug是否要记录。...本文分为三部分内容: 一、bug必须记 二、为什么要记 三、怎么记bug 一、bug必须记 首先,亮出阿常的观点——发现bug必须要记录下来。...二、为什么要记 一)便于跟踪问题进展,防止遗忘漏测 日常的测试工作普遍多任务并发,如果发现一个bug不及时记录下来,而只是口头和开发交代,很可能导致,不仅仅开发忘记了这个bug的存在,连我们自己也忘记了发现的是什么...小互动 阿常今日分享--只要发现bug,就必须要提。友友们怎么看,欢迎评论区留言哦

25720
领券