跳去內容

Talk:自身類別

頁面內容唔支援其他語言。
出自維基百科,自由嘅百科全書

@H78c67cDeryck Chan 有冇辦法可以 link 呢篇文去英維嘅 metaclass 嗰度?Dr. Greywolf (傾偈) 2020年10月24號 (六) 03:36 (UTC)[回覆]

「Metaclass」呢篇文User:HenryLi連咗去元類別度。Eigenclass呢個概念,我無學過Ruby,睇咗篇教學重係一頭霧水,但睇落eigenclass同Q1924819所描述嘅metaclass有分別。H78c67c·傾偈 2020年10月24號 (六) 03:49 (UTC)[回覆]
我知 metaclass 同 eigenclass 係兩樣嘢,不過有陣時有啲文可以連去英維「意思上最接近」嘅文嗰度。Dr. Greywolf (傾偈) 2020年10月24號 (六) 03:58 (UTC)[回覆]
[[en:Metaclass]]H78c67c·傾偈 2020年10月24號 (六) 04:01 (UTC)[回覆]

係咁嘅。

元類別metaclass依個題目,根本無幾人講得好。除非有能夠掌握咁多隻語言嘅人。現時無乜維基友能掌握全局。好多時名同實異,夾硬擺埋一齊講。英文嗰篇metaclass,睇下佢個討論就見到坳到七彩。Java有個metaclass,但啲人就話唔係metaclass。Ruby個eigenclass有人剷過,又再畀人加入。

就以英文做例。英文嗰篇metaclass,介紹之下有四個部份,python、smalltalk、ruby、objective-C,各有各講,睇落就係四個各不相干嘅題目,夾硬寫埋一齊。無睇過佢改文紀錄,就咁睇似python寫先,因為佢有metaclass,所以拎咗來做例,但之後乜都無寫過。然而講metaclass,smalltalk先至係元祖,所以就大講特講。ruby英語某啲羣組,叫eigenclass做metaclass,故此有人寫落去。因為定義問題,畀人剷過,或者咁就寫好詳細。Objective-C抄過smalltalk,又寫落去,有人拗佢又唔係metaclass。成篇完全唔夾,變smalltalk、ruby、objective-C佔據大量篇幅,python就奇離咁做咗例就喺前面。

點解會咁?因為只圍住metaclass個名來轉。無人理metaclass本質究竟係乜嘢?metaclass究竟有乜嘢內涵?如果唔清唔楚,咁同名係咪就講緊同一樣呢?大家個關係點呢?大家只能寫自己理解語言嘅範疇,結果片面大講特講幾隻語言,夾硬將啲嘢放埋一篇,咁不如分開好過。

若果要寫得完整,至少要由佢身世講起。以及乜嘢先至構成metaclass。若果唔識smalltalk,根本無從寫起。Lisp分支出來嘅LOOPS、Flavors、CLOS等點都要講。如問題位,好似metaclass compatibility conflict之類。又如Java有metaclass,點解啲人話唔係metaclass等等。

有啲會諗為,metaclass其中要素,就同inheritance嘅lookup mechanism有關,有啲會話metaclass係可改佢變inheritance,Ruby無可能做到。

就好似依篇咁[1],「Ruby does NOT have meta classes」「So what is a meta class then? Well, it's a class that defines the behavior of other classes. You can define meta classes in Ruby if you want too by defining a subclass of Class. Those classes would be metaclasses.」

定義都唔明確嘅嘢,合成一篇查實會更加唔明。

HenryLi (傾偈) 2020年10月24號 (六) 10:51 (UTC)[回覆]

我覺得「指去英文」着墨唔係幾正。重點應該係「連去維基數據」。而家「Metaclass」對應「元類別」。英文維基另外有「Eigenclass model」,指向en:Ruby_(programming_language)#Semantics。所以要搞清楚嘅係「元類別」同「自身類別」究竟係咩關係。@Dr. GreywolfHenryLi我見 HenryLi 開咗個維基數據項講 eigenclass,可以將呢個項連去en:Eigenclass model,反正維基數據社群而家准特登連去跳轉版。翹仔 (傾偈) 2020年10月24號 (六) 17:39 (UTC)[回覆]

試過唔得,係咪要第二啲方法,或者要特別權限?查實嗰度啲內容已經畀人剷晒,見唔到有關嘅嘢。HenryLi (傾偈) 2020年10月24號 (六) 17:50 (UTC)[回覆]