tai271828
10 years ago
直譯器的優化結果?
赫然發現這兩種 python (包括 python3) 敘述不會引發錯誤:
print(True or asdfasdf)
print(False and asdfasdf)
asdfasdf 是沒定義或是會 keyError 的 dictionary。
這顯然跟真值表的運算結果有關,
True or 和 False and 陳述後面都不計算了。
YChao
10 years ago
這是常識欸
阿斯~~蘭
10 years ago
這叫做驟死式判斷 滿常有這種寫法的 C 也都這樣用 像是
func(char* ccc) {
if( ccc && ccc[0] == '1')
...
}
不這樣做直接 ccc[0] 取值的話 要是遇到 NULL pointer 就 runtime error 了
tai271828
10 years ago
一樓學長給點面子好嗎? XD
好啦我缺乏常識 Orz
立即下載
tai271828
10 years ago
謝謝二樓大大詳細解釋!
YChao
10 years ago
印象中C語言教科書就有寫的,應該叫常識吧? XD