当前位置:首页 > 每日看点 > 正文内容

在JA里面还推荐使用尤达表示法吗?oj==null这种写法?

卡卷网12个月前 (01-10)每日看点185

<>尤达表示法:Ja中的“丑陋写法”?

if(null==oj){ //Dosomething }

这种写法就是我们常说的<>尤达表示法(YodaConditions),名字来源于《星球大战》里的角色尤达,因为这种写法像是反着说话,<>看起来非常不自然。

那<>在Ja代码中,尤达表示法到底是否应该继续使用?

<>尤达表示法为什么出现?

尤达表示法的由来其实很简单:最早的时候,许多编程语言(包括C和C++)的开发者常常使用这种方式,<>主要是为了避免某些编译器的潜在错误或编程不规范所带来的问题。

<>1.防止赋值错误

在早期的C/C++编程中,开发者如果不小心写成了:

if(oj=null){ //Dosomething }

这段代码就会发生错误,因为=是赋值作符,表示给oj赋值为null,而不是较oj是否等于null。但如果写成null==oj,编译器就会强制把null作为常量放在左边,防止误用=符号,<>避免将较作写成赋值作。

<>2.旧时代的代码习惯

在早期,很多C/C++的开发者习惯性地使用尤达表示法,以防止将“==”误写成“=”(赋值符号),这成为了一种编程习惯。不过,在现在这种需求已经大大减少了。

<>现代Ja:尤达表示法的弊端

<>1.可读性差

尤达表示法的最大问题就是<>可读性差。对于现发者来说,null==oj看起来就像是倒过来的句子,<>不自然也不直观。

你直接看到oj==null,会立刻明白意思:如果对象为空,执行某个作。而null==oj则让人一时摸不着头脑,反而让代码显得更加晦涩。

<>2.现代IDE也会帮你检查

如今的大多数现代IDE(如<>InliJIDEA或<>Eclipse)都已经能很容易地捕捉到潜在的错误,如果你写了oj=null,它会立刻提示你“可能是写错了”,并提醒你检查代码。因此,<>用null==oj来防止赋值错误,已经不再是必需的。

3.这种写法如今也是少之又少了

现代Ja编程的推荐写法是<>左值在前,右值在后。Ja中的普遍约定就是先写对象再写值(如oj==null),这样不仅符合语言习惯,也符合大多数开发者的直觉。这个习惯更加符合Ja语言的语法和阅读习惯。


<>那么,究竟要不要继续使用尤达表示法?

<>没必要再用,随着编程工具的进步、语言本身的强大和开发标准的演进,<>尤达表示法的优势几乎消失了。因此,<>完全没有必要使用null==oj这种写法。

而Ja编程推荐的做法是:<>oj==null,这种写法显然null==oj更直观,更容易被开发者理解。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/01/8526.html

分享给朋友:

相关文章

电视上哪个软件可以免费看电视直播?

电视上哪个软件可以免费看电视直播?

今天给大家推荐8款免费电视端直播看剧软件,感兴趣的朋友可以下载试一试!1、超级ITV 6.04免费看电视直播,央视卫视高清秒播,还有电影电视剧少儿体育等。2、小鲸电视 1.3.1小鲸电视是一款智能电视应用,集成了多个内容来源,包括腾讯视频、...

我爸讽刺我,写个破代码一年才十几万,他在工地带50个人,让我回去跟他干,写代码没出路,我该怎么选择?

我跟你一样的情况,本人现身说法,千万不要跟你爸干,我就是反面教材,现在想回去都回不去了,快十年没写代码了,再就是岁数大了,38岁了,35岁以上的码农根本就没公司愿意要,而且会受歧视。工程不好干,首先就是不合法,在法律层面,根本就没有包工头的...

在 Istio、Linkerd 和 Cilium 之间,哪种服务网格在性能上表现最佳?

在 Istio、Linkerd 和 Cilium 之间,哪种服务网格在性能上表现最佳?

在讨论服务网格之前,先理解一下为什么我们需要它。现代微服务架构意味着将应用拆分为多个小型、独立的服务,这些服务可以独立开发、部署和扩展。然而,服务之间的通信和管理成了巨大的挑战,例如如何保证安全的通信、负载均衡、监控与可观测性等。服务网格...

数字人民币为什么又不火了?

我完全不懂行。我一开始以为,数字人民币,是对我银行里的每一分钱,都赋予一个独一无二的数字编码。我要用一块钱买矿泉水,它就从我的存款中随机选取一百个一分钱,组合成一块钱,支付给商家。我花一百块钱吃饭,它就随机选取一万个一分钱,组合成一百块钱,...

如何判断 Java 工程师的基础知识是否扎实?

我来给你出几道大题,能答对70%,你就算基础扎实了。第一部分 Java基础(27)1. 程序本质:代码是如何被执行的?CPU、操作系统、虚拟机各司何职?2. 基础语法:从CPU角度看变量、数组、类型、运算、跳转、函数等语法3. 引用类型:同...

程序员都有自己的服务器吗?

程序员都有自己的服务器吗?

2024.9. 24,有朋友咨询功耗,我没有单独给服务器弄智能插座,系统做的 esxi 也看不到,所以只能用其他角度判断供大家参考。我有一个餐边柜改的机柜,里面白裙两盘,黑群晖 4 机械 1 mvme,一个爱快硬路由,一个联通光猫,一个 2...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。