3

明らかにRubyとSassですが、他に何がありますか?

4

6 に答える 6

4

Wikiにはリストがあります

http://en.wikipedia.org/wiki/Mixin#Programming_languages_that_use_mixins

引用するには:

ミックスインを使用するプログラミング言語

フレーバーとCLOS(Common Lispの一部)以外に、ミックスインを使用するいくつかの言語は次のとおりです。

* ColdFusion (Class based using includes and Object based 
  by assigning methods from one object to another at runtime)
* Curl(with Curl RTE)
* D (called "template mixins")
* Factor[citation needed]
* Fantom
* Ioke
* JavaFX Script
* JavaScript
* Object REXX
* OpenLaszlo
* Perl[3]
* PLT Scheme (mixins documentation)
* Python
* Ruby
* Scala
* Smalltalk
* Strongtalk
* Vala
* Visual Dataflex
* XOTcl/TclOO (object systems for Tcl)[4]

ECMAScript(一般にJavaScriptと呼ばれる)のような一部の言語は、言語レベルでミックスインをサポートしていませんが、実行時に1つのオブジェクトから別のオブジェクトにメソッドをコピーし、それによってミックスインのメソッドを「借用」することで、ミックスインを簡単に模倣できます。これは、オブジェクトの署名がコンパイル時に固定される静的に型付けされた言語では不可能であることに注意してください。

于 2010-04-06T02:23:33.217 に答える
1

Dのバージョン1と2はどちらもミックスインをサポートしています。

于 2010-04-06T02:22:26.960 に答える
1

Perlの役割はミックスインと呼ぶことができます。

于 2010-04-06T02:27:18.103 に答える
1

_なぜポーションの言語が頭に浮かぶのか。オブジェクトには状態とメソッドがあるという考え方です。ほとんどの言語では、状態はオブジェクトで発生し、メソッドはクラスで発生します。ポーションでは、オブジェクトには状態のみがあり、メソッドはミックスインで完全に処理されます。

READMEから引用するには

すべてがオブジェクトです。ミックスインでさえオブジェクトです。そして、もちろん、クロージャはオブジェクトです。

ただし、オブジェクトはすべてではありません。それらは、ミックスインなしで使用できます。

ちなみに、私は理由が恋しいです。このような野生のことをする人がもっと必要です

于 2010-04-06T02:28:11.767 に答える
0

もちろん、フレーバーこれはCLOSに変形しました。

于 2010-04-06T02:20:19.687 に答える
0

JavaScriptはそれらをサポートしています。関数/フィールドはいつでもオブジェクトのプロトタイプに追加できます。

于 2010-04-06T02:21:06.157 に答える