Object! datatype

1. Úvodem

Hodnoty typu object! reprezentují pojmenované nebo nepojmenované kontexty, které obsahují páry word: value pairs.

Typ object! je členem typesetů: any-object!, default!

2. Vytvoření

Objekty lze vytvořit konstruktorem make nebo pomocí funkcí context, object a contruct.

Idiom make object! vytváří nový objekt, vyhodnocujíc blok specifikací.

Funkce context a object invokují idiom make object!.

Použití make:

>> foo: make object! [x: "bar" y: "baz"]
== make object! [
    x: "bar"
    y: "baz"
]

>> foo: make object! [x: "bar" y: ()]   ; spec block is evaluated
*** Script Error: y: needs a value
*** Where: y
*** Stack:

Použití funkce context:

>> foo: context [x: "bar" y: "baz"]
== make object! [
    x: "bar"
    y: "baz"
]

>> foo: context [x: "bar" y: ()]   ; spec block is evaluated
*** Script Error: y: needs a value
*** Where: y
*** Stack: context

Použití funkce object:

>> foo: object [x: "bar" y: "baz"]
== make object! [
    x: "bar"
    y: "baz"
]

>> foo: object [x: "bar" y: ()]   ; spec block is evaluated
*** Script Error: y: needs a value
*** Where: y
*** Stack: object

Je-li argumentem funkce make hodnota typu object!, vytvoří se nový objekt s argumentem coby prototyp.

>> foo: make object! [x: "bar" y: "baz"]
== make object! [
    x: "bar"
    y: "baz"
]

>> bar: make foo [z: 42]
== make object! [
    x: "bar"
    y: "baz"
    z: 42
]

Funkce construct vytváří objekt bez vyhodnocení bloku specifikací:

>> foo: construct [x: "bar" y: ()]
== make object! [
    x: "bar"
    y: ()
]

Je-li funkce construct použita s upřesněním /with, vytvoří se nový objekt který je rozšířením zadané hodnoty typu object!:

>> bar: construct/with [a: 42] foo
== make object! [
    x: "bar"
    y: ()
    a: 42
]

3. Literálová skladba

<object> ::= make object! <object-spec> | object <object-spec> | context <object-spec> |
             make <object> <object-spec>

<object-spec> ::= <block>

4. Komparace

Na hodnotu typu object! lze aplikovat všechny komparátory: =, ==, <>, >, <, >=, <=, =?.

5. Testování hodnot

Funkcí object? ověříme, zda je zadaná hodnota typu object!.

>> object? foo
== true

Funkce type? vrací datový typ zadané hodnoty.

>> type? foo
== object!

6. Předdefinovaná slova

6.1. Akce

copy, find, put, select

6.2. Funkce

any-object?, class-of, context, distance?, dump-face, face?, fetch-help, foreach-face, get-scroller, help, help-string, layout, metrics?, object, object?, offset-to-caret, offset-to-char, overlap?, parse-func-spec, react, react?, request-font, rtd-layout, save, set-flag, set-focus, show, size-text, stop-reactor, unview, view

6.3. Natives

bind, context?, extend, in, set

results matching ""

    No results matching ""