還只會寫廢扣。玄葉
@cynthia_tan
Sat, May 3, 2025 10:08 PM
最近在學寫js, ruby 還有assembly
我就覺得好奇怪,為什麼js, ruby會把build-in functions 稱作 methods?
我在寫C或assembly的時候, 這種東西都叫做function?🤔
把這個問題寫了下來
後來寫一寫,才想起來...對喔,js和ruby也會寫函式,如果要區分哪個是build-in, 哪個是另外寫出來的,那確實...好像得把用詞區分開來?
但是是這樣嗎?
所以我問了Gemini
原來methods其實是OOP裡面object/class內的函式(需要透過object來呼叫)
Function是獨立存在的函式,不屬於物件或類別
C以前的語言不屬於OOP,全部叫做function很正常
那我又覺得更奇怪了...
還只會寫廢扣。玄葉
@cynthia_tan
Sat, May 3, 2025 10:15 PM
C++我也寫過,那怎麼沒有人用methods這個詞?至少我查cplusplus reference的時候,看到的庫也都是用function這樣稱呼
Gemini說
1. 歷史背景:C++從C發展出來,雖然是物件導向,但最開始不強調純物件導向,還有程序導向的背景在裡面
2. 語言文化:使用C++的人普遍使用function來稱呼函式、最多會再更細的說是不是member function(這我就常看到了),所以不會像更新的語言直接講「methods」
3. 混合式的庫設計:像STL或很多庫都是global function或template function, 而不是class的member, 所以不會用method這種物件語言的術語去涵蓋
還只會寫廢扣。玄葉
@cynthia_tan
Sat, May 3, 2025 10:18 PM
半夜12點,我在看什麼東西的感覺
但是也蠻有趣的,我要把這個塞進我的筆記裡面
然後洗洗睡
睡前用這個,不知道晚上會夢到哪個語言
我猜是assembly,因為他是作業
還只會寫廢扣。玄葉
@cynthia_tan
Sat, May 3, 2025 11:00 PM
作業要求也挺有趣的...
學校都是linu
Ubuntu)所以作業要求用nasm來編譯,不過我們不能寫AT&T的寫法,要用INTEL的寫法來寫扣
去理解寫法差異也蠻有意思的
l• ܫ•) Davyキュルッ
@david50407
Sun, May 4, 2025 12:47 AM
Method (computer programming) - Wikipedia
l• ܫ•) Davyキュルッ
@david50407
Sun, May 4, 2025 12:51 AM
Wikipedia 其實有提到 C++ member function 這件事情
還只會寫廢扣。玄葉
@cynthia_tan
Sun, May 4, 2025 8:41 AM
謝謝Davy分享!
載入新的回覆
我就覺得好奇怪,為什麼js, ruby會把build-in functions 稱作 methods?
我在寫C或assembly的時候, 這種東西都叫做function?🤔
把這個問題寫了下來
後來寫一寫,才想起來...對喔,js和ruby也會寫函式,如果要區分哪個是build-in, 哪個是另外寫出來的,那確實...好像得把用詞區分開來?
但是是這樣嗎?
所以我問了Gemini
原來methods其實是OOP裡面object/class內的函式(需要透過object來呼叫)
Function是獨立存在的函式,不屬於物件或類別
C以前的語言不屬於OOP,全部叫做function很正常
那我又覺得更奇怪了...
Gemini說
1. 歷史背景:C++從C發展出來,雖然是物件導向,但最開始不強調純物件導向,還有程序導向的背景在裡面
2. 語言文化:使用C++的人普遍使用function來稱呼函式、最多會再更細的說是不是member function(這我就常看到了),所以不會像更新的語言直接講「methods」
3. 混合式的庫設計:像STL或很多庫都是global function或template function, 而不是class的member, 所以不會用method這種物件語言的術語去涵蓋
但是也蠻有趣的,我要把這個塞進我的筆記裡面
然後洗洗睡
睡前用這個,不知道晚上會夢到哪個語言我猜是assembly,因為他是作業學校都是linu
去理解寫法差異也蠻有意思的