同样的逻辑,两种不同的代码写法,为啥大部分码农喜欢第一种?

程序代码的奇妙之处在于他足够的灵活,对于大部分计算机语言,关键字也就几十个,但是就凭这个几十个关键字的灵活运用却能生产出无数个不重样的软件产品与功能,就像人类语言一样,常用字也就几百个,但是就凭这几百个常用字就能用来各种语言表达与交流,也许这就是所有语言的共同的奇妙之处吧,当然,在编程方面,虽然每个公司都有自己相应的编码规范,编码规范能最大程度的约束所有程序员的编码风格保持统一,但是到具体细节时,也是编码规范不能触及的地方,对于同样的功能,不同的程序员有着不同的细节实现,往往一段代码的好坏(比如效率,可读性,可扩展,代码简洁干练,设计模式等)都提现在这些细节上。

说起代码的可读性指的是对人的,并不是对计算机的,对计算机来说没有可读性而言,最终都是转化成二进制,可读性怎么定义呢?没有标准的答案,就字面意思,就是看起来轻松,让人很容易读懂,但是每个人能力不一样,读代码的轻松程度也是不一样的,你认为比较难读的代码也许换一个能力更强的来说,读起来就相对轻松,总之,可读性也是相对而言的,那么咱们就不妨拿一个网友提供的代码作为例子来展开讨论,近期,一名程序员网友晒出了一段代码的两种写法,他个人更喜欢第一种写法,因为他觉得觉得读起来比较符合人类的自然思维,易读。但是他看很多开源代码都更喜欢第二种。针对这样的情况,让我们一起看看其他网友们都是怎么认为的吧!


网友一:return a.func1()&& a.func2()&& a.func3();

上世是朵花:为这名网友点个赞,这么写没毛病,一行代码所实现的功能与上面的方法的效果是一样的,不过我个人并不提倡这么写,代码是简洁了,可读性并不高,大多数人并不习惯这样的方式。

去哪儿员工:阿里的Java规约推荐第一种

上世是朵花:看来,第一种写法还是符合大众的思维习惯!

网友三:效率都不一样 哎 我还得每行看 怕你if里面有坑

上世是朵花:这名网友的观点并不是很赞同,后面详细解释。

网友四:说第一种要全条件判断的,你在开玩笑?retun都阻止不了后面的判断?

上世是朵花:赞同,只要if符合条件,后面的代码是不会继续执行的。

网友五:我记得网络上那个阿里开发手册里就推荐第一种, 第一种有个好处if  else不会套很多层

上世是朵花:效率上的差别几乎忽略不计,完全是可读性与思维习惯上的问题。

网友六:都不好,条件多的话可以用switch

上世是朵花:switch 适合多种case的情况,目前的场景是一些boolean表达式,并不太适合用switch.

网友七:第一个总觉得闭合的不好,错觉吧

上世是朵花:还好吧,每个人习惯不一样。

网友八:前三个if不是可以或语句合并么

上世是朵花:是的,可以“或”语句合并,当然也可以“且”语句合并,把"!"去掉,像第一名网友的写法,不论是“或”还是"且”合并,貌似可读性都不是很高,并不建议这种写法,有时太简洁也不一定好。

针对这两种写法,效率的差别就谈不上了,完全是一个思维习惯的问题,有的人更喜欢第一种,有的人则更喜欢第二种,从本次讨论结果可以看出大部分网友更喜欢第一种,但也不代表所有人,也许有的地域的程序员更习惯第二种写法,不论是第一种还是第二种,执行过程是一样的,都是每一个if都会检查的,只要符合if条件就直接return了,后面将不再执行,并不是像有的网友说的第一种写法是全检查第二种则不是,关于有的网友说的switch与if

else效率问题是要看计算机语言了,有的计算机语言switch最终转化成的还是ifelse,只是一个语法糖而已,对于有的语言,绝大部分情况下switch会快一点,除非是if-else的第一个条件就为true,编译器编译switch与编译if...else...不同。不管有多少case,都直接跳转,不需逐个比较查询;switch只计算一次值,当然对于本案例中说的情况并不适合使用switch。像这种对于同一功能不同写法的例子还有很多,欢迎大家在下方评论区分享交流!

以上所有图片均来之互联网   

大家好,我是“上世是朵花”。如果你有什么好的看法或者观点可以在评论区展现你的才华,互动交流,如果想进一步了解我,那就关注我吧!(微信公众号:sssdhua )

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容