b 到底是 1 還是 3 ? 你直覺是甚麼呢?(也許你具有程式語言的天賦
這並不是數學,而是程式語言。同樣寫做「=」,數學符號「=」是equal,程式語言「=」是set,「==」是程式語言中的equal。
也許聽過「物件導向」,很直覺地 a 導向 1 , b 導向 a , a 改成導向 3 ,但 b 依舊導向 a ,所以 b 導向 3。
推論出答案是「 3 」?
當前主流的程式語言,幾乎都是物件導向,要是懂了這個,學程式語言第一把神器就在手上,學甚麼都好上手,此外這題撰寫格外簡單,初學者有很大機會碰到。
所以答案是「 1 」,你答對了嗎?
在高中時,具有程式語言邏輯的人實在不多,對同學來說是很挫折的事情,為什麼不懂?大概歸咎於程式語言的教學語彙艱深且不熟悉。
但這是我高中成績最好的一科,不過這道題目到了今天,才想到該怎麼解釋,在甚麼觀念之下才能一窺運作全貌。(平常都沒有去想
簡單說明:
1 是物件,a 導向 1 這個物件。
a 不是物件,a 導向的 1 才是物件,所以 b = a 之後,b 其實是導向 1 這個物件。(物件導向→
a 重新導向 3 這個物件,但對 b 導向的 1 這個物件沒有影響,也沒有改變其值。
所以 b 還是 1,而 a 則變成 3。
這樣解釋雖然簡白,但其他重要概念像是 1 跟 3 到底是甚麼樣的物件沒有給予解釋,讓想知道更深入的人去自己去瞭解吧。
(程式語言並非所有「=」都是set,如果set有其他指令,那麼「=」也是可以被當作equal使用。例如:SQL
我覺得任何人都能明白世界上所有的艱深知識,不存在一個道理是只有聰明的人才懂,笨的人永遠不會懂。所以記住,永遠不要跟笨蛋爭論。
同學覺得程式語言困難,那通常並不是真的困難,教材影響很大,好的教材能用淺顯的方式定義與舉例,教材不該有考驗鑑別度的能力。
(同學們會挑食,通常那種食物並不是真的不能吃,烹飪技術影響很大,好的營養午餐能讓大部分人都接受,營養午餐不該成為讓同學挑食的理由。
前不久同學會,人生勝利組的同學感嘆說:「當初高中上電腦課的時候就該好好學而不是混過去。」
到底勝利組在哪些地方產生這樣的感觸?我也是很好奇啊。
(大概跟當初英文就應該好好念,而不是混過去,在很多地方都可以用的。大概可能有八十七趴像吧~