明らかにRubyとSassですが、他に何がありますか?
6 に答える
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つのオブジェクトから別のオブジェクトにメソッドをコピーし、それによってミックスインのメソッドを「借用」することで、ミックスインを簡単に模倣できます。これは、オブジェクトの署名がコンパイル時に固定される静的に型付けされた言語では不可能であることに注意してください。
Dのバージョン1と2はどちらもミックスインをサポートしています。
Perlの役割はミックスインと呼ぶことができます。
_なぜポーションの言語が頭に浮かぶのか。オブジェクトには状態とメソッドがあるという考え方です。ほとんどの言語では、状態はオブジェクトで発生し、メソッドはクラスで発生します。ポーションでは、オブジェクトには状態のみがあり、メソッドはミックスインで完全に処理されます。
READMEから引用するには
すべてがオブジェクトです。ミックスインでさえオブジェクトです。そして、もちろん、クロージャはオブジェクトです。
ただし、オブジェクトはすべてではありません。それらは、ミックスインなしで使用できます。
ちなみに、私は理由が恋しいです。このような野生のことをする人がもっと必要です
JavaScriptはそれらをサポートしています。関数/フィールドはいつでもオブジェクトのプロトタイプに追加できます。