Difference between revisions of "Isa"

From MiniScript Wiki
Jump to navigation Jump to search
(Add examples (built-in types))
(Example for user-defined type)
Line 12: Line 12:
 
[1,2,3] isa list      // returns 1
 
[1,2,3] isa list      // returns 1
 
{"uno":1,"dos":2} isa map    // returns 1
 
{"uno":1,"dos":2} isa map    // returns 1
 +
</ms>
 +
 +
=== Examples for user-defined types ===
 +
 +
<ms>
 +
MyDefinedType = {}
 +
MyOtherDefinedType = {}
 +
 +
obj = new MyUserDefinedType
 +
 +
obj isa MyDefinedType        // returns 1 - direct type
 +
obj isa map                  // returns 1 - related by inheritance
 +
 +
obj isa MyOtherDefinedType  // returns 0 - because unrelated
 
</ms>
 
</ms>
  

Revision as of 10:33, 5 December 2021

Because this wiki software does not allow topic names to begin with an underscore, this page contains two different topics.

isa (operator)

isa is a keyword binary operator which tests the left-hand operator for membership in the type defined by the right-hand side. That right-hand operator could be a user-defined map (to which the left-hand side might belong via the __isa chain), or it could be one of the built-in types: number, string, list, map, or funcRef.

Examples for built-in types

"Hello" isa string    // returns 1
"Hello" isa number    // returns 0
123 isa number        // returns 1
"123" isa number      // returns 0 
[1,2,3] isa list      // returns 1
{"uno":1,"dos":2} isa map    // returns 1

Examples for user-defined types

MyDefinedType = {}
MyOtherDefinedType = {}

obj = new MyUserDefinedType

obj isa MyDefinedType        // returns 1 - direct type
obj isa map                  // returns 1 - related by inheritance

obj isa MyOtherDefinedType   // returns 0 - because unrelated

__isa (map entry)

__isa is a special entry in a map that refers to the map's base class. It is part of MiniScript's support for object-oriented programming.

See also


This article is a stub. You can help the MiniScript Wiki by expanding it.