ユーザ用ツール

サイト用ツール


oop:aboutclass

文書の過去の版を表示しています。


クラス・オブジェクトについて

資料

https://miniscript.org/files/MiniScript-QuickRef.pdf

__isaについて

https://miniscript.org/wiki/Isa

概要

クラスまたはオブジェクトは、Miniscriptにおいては親を指す特別な __isa エントリを持つマップです。

また、ドット構文で呼び出された関数は、呼び出されたオブジェクトを参照する自己変数を取得します。


まずクラスというのは、ここでは「特殊なマップ変数」という扱いになります。

よって、mapと同様の使い方ができるということですね。

通常のmapと違って特殊なのは、以下の内容です。

  • 各種変数・関数の呼び出し方が「class.変数」「class.関数」となっていること
  • 「__isa」というキーが存在していること

isaは、マップの基本クラスを参照する特別なエントリーという位置づけになっており、基準にするクラスの情報が入ってるわけですね。 サンプルにisaの内容を呼び出すプログラムも書いてみました。

サンプル

shape={"sides":0}
square = new shape
square.sides=3
square
x=new square
print x.sides

shape.puresq=function

  return self.sides*self.sides
end function
print x.puresq()
square
square.<nowiki>__isa</nowiki>

サンプル説明

oop/aboutclass.1673640378.txt.gz · 最終更新: 2023/01/14 05:06 by machiaworx