
获得徽章 0
赞了这篇沸点
《Clean Code》看完了一半。
《Code Complete》正在看。
《Refactoring》打算以后再看。
这3本书其实在聊一件同样的事情:如何提高代码质量,即提高代码的可读性与可维护性。这样的话,这三本书的确没那么高大上,甚至读起来有点无聊。
这3本书怎么就成了程序员的圣经?因为保证代码质量是软件工程师最简单最基本的要求,这就和高考一样,只要你把简单的东西做好了,你就已经超越了80%的考生。
这3本书有那么厉害吗?它们把我们编程经验中想到的以及没想到的话全部说出来了,整理成为一套完整的体系,而我们自己总结的编程经验不够完整,也没那么准确。
《Code Complete》正在看。
《Refactoring》打算以后再看。
这3本书其实在聊一件同样的事情:如何提高代码质量,即提高代码的可读性与可维护性。这样的话,这三本书的确没那么高大上,甚至读起来有点无聊。
这3本书怎么就成了程序员的圣经?因为保证代码质量是软件工程师最简单最基本的要求,这就和高考一样,只要你把简单的东西做好了,你就已经超越了80%的考生。
这3本书有那么厉害吗?它们把我们编程经验中想到的以及没想到的话全部说出来了,整理成为一套完整的体系,而我们自己总结的编程经验不够完整,也没那么准确。
展开
评论
17
赞了这篇沸点
赞了这篇文章
赞了这篇沸点
赞了这篇沸点
「每天一点点🕐」【优先级与求值顺序无关】
🌰例子:true || true && fn() 这个表达式的值是多少,函数fn 会被执行吗?
❓看到上述表达式,第一反应是 “逻辑或||” 是短路操作符,因此答案是true,且 函数fn 不会被执行;如果混合了奇怪的概念,比方说 “逻辑与&&” 优先级高于 “逻辑或||”,应该先执行 true && fn(),所以会执行 函数fn,那么事情就变得奇怪了。
📚“逻辑与&&”、“逻辑或||” 都是短路操作符,“逻辑与&&” 优先级高于 “逻辑或||”,这两个概念都是正确的。
但是优先级高不代表优先运算。优先级是结合的优先级,即谁和谁一组;组了队不代表优先运算,运算顺序还是按照从左到右来的,因此上述表达式等同于 true || ( true && fn() )
关于短路操作符:
“逻辑与&&”、“逻辑或||”都是短路操作符。当“逻辑或||”左边的值是 true 的时候,就会直接返回结果 true,后续代码不会被执行;当“逻辑与&&”左边的值是 false 的时候,就会直接返回结果 false,后续代码不会被执行。
🌰例子:true || true && fn() 这个表达式的值是多少,函数fn 会被执行吗?
❓看到上述表达式,第一反应是 “逻辑或||” 是短路操作符,因此答案是true,且 函数fn 不会被执行;如果混合了奇怪的概念,比方说 “逻辑与&&” 优先级高于 “逻辑或||”,应该先执行 true && fn(),所以会执行 函数fn,那么事情就变得奇怪了。
📚“逻辑与&&”、“逻辑或||” 都是短路操作符,“逻辑与&&” 优先级高于 “逻辑或||”,这两个概念都是正确的。
关于短路操作符:
“逻辑与&&”、“逻辑或||”都是短路操作符。当“逻辑或||”左边的值是 true 的时候,就会直接返回结果 true,后续代码不会被执行;当“逻辑与&&”左边的值是 false 的时候,就会直接返回结果 false,后续代码不会被执行。
展开
7
43
赞了这篇文章