Datové typy

Každá hodnota v Red je určitého datového typu. Hodnoty Redu jsou silně typované, proměnné (slova, odkazující na hodnoty) však nikoliv. Hodnoty jsou základními stavebními bloky Redu. Zatímco většina jazyků má 6-8 základních datových typů, Red jich má téměř 50, mnohé z nich majíc jedinečnou literálovou formu. Jsou některé implementační detaily, o nichž se ve většině případů nepotřebujete zajímat. Například, [native! action! function! routine!] jsou všechno typy funkcí, které můžete používat bez znalosti jejich typu.

Nicméně, abyste mohli používat Red efektivně, měli byste se se všemi dostupnými datovými typy alespoň povšechně seznámit.

Přehled datových typů

  • - indikuje neexistenci literálové formy dané hodnoty. Tyto hodnoty musí být vytvořeney pomocí make nebo konstrukční skladbou (jíž je pro mnohé typy TBD).

Type

Literal Form

Description

action!

-

"Metody" datových typů v interním OO modelu Redu.

binary!

2#{11111111}, 16#{2A}, 64#{2AQQ}

Serie bajtů.

bitset!

-

Array bitů, použitých k uložení booleovských hodnot.

block!

[], [one 2 "three"], [print 1.23]

Kdykoli vyhodnotitelné kolekce dat či kódu.

char!

#"z", #"^C", #"^(esc)"

Kódové body Unicode.

datatype!

bitset!, string!, time!, word!

Předdefinované datové typy.

date!

1999-10-5, 5/10/1999, 5-October-1999

Kalendářní data, vycházející z Gergoriánkského kalendáře.

email!

adams@fourty-two.net, gregg@red-lang.org

Přímo vyjádřné emailové adresy.

error!

-

Specializované hodnoty typu object!, používané pro chybové situace

event!

-

Objektu podobné hodnoty, které reprezentují externí aktivitu. Vesměs pouze pro čtení.

file!

%foo, %alongfilename, %/C/

Jména souborů nebo jména adresářů a cest.

float!

+123.4, -123.4, 0042.0, 60'000'12'3.4

64-bitové pozitivní či negativní číslo, obsahující desetinnou tečku.

function!

-

Uživatelsky definované funkce.

get-path!

:foo/bar/baz

Nevyhodnocené hodnoty typu 'path!'.

get-word!

:foo

Nevyhodnocené hodnoty typu 'word!'.

handle!

-

Opakní celá čísla, použitá pro interakci s operačním systémem.

hash!

-

Bloku podobné rozhraní s rychlým vyhledáváním.

image!

-

Serie hodnot RGBA, které reprezentují pixely ve 2D zobrazeních.

integer!

1234, +1234, -1234, 60'000'000

32-bitová čísla bez desetinné tečky.

issue!

#555-555-5555, #ABC-123-xyx, #ID

Heštegy, klíčová slova a identifikátory, které neobsahují mezery.

lit-path!

'foo/bar/baz

Nevyhodnocená (citovaná) hodnota `path!.

lit-word!

'foo

Nevyhodnocená hodnota word!.

logic!

true false, yes no, on off

Booleovské hodnoty.

map!

#( ), #(a: 1 b: 2)

Asociativní řady (arrays) párů key/value.

native!

-

Externí funkce, psané v Red/System.

none!

-

Hodnota, která nepatří k žádnému datovému typu. Analogicky k nula či nic.

object!

-

Pojmenované či nepojmenované kontexty, které obsahují páry word: value.

op!

-

Infixová funkce pro dva argumenty.

pair!

42x42

Dvou dimenzionální souřadnice.

paren!

(one 2 "three" 4:00:00)

Bezprostředně vyhodnocený block!.

path!

foo/bar/baz

Serie hodnot, oddělených lomítky /. Limitováno typem hodnot, které mohou obsahovat.

percent!

100%, 0.76%

Hodnoty typu float!, vyjádřené jako procenta.

refinement!

/foo

Symbolické hodnoty, použité jako modifikátory funkcí nebo extenzí objektů, souborů, URL či cest.

routine!

-

Funkce s tělem, kompatibilním se specifikacemi Redu a Red/System.

set-path!

foo/bar/baz:

Nastaví "kontextuální referenci" (slovo v kontextu, indexový slot v řadě nebo klíčový odkaz v řadě či mapě). Sets a "contextual reference" (word in a context, indexes slot in a series, or keyed reference in a series or map).

set-word!

foo:

Nastaví odkaz k hodnotě.

string!

"foo"

Sekvence kódových bodů Unicode (hodnot char!) ohraničených apostrofy.

tag!

<foo>

Tagy a elementy systému Markup.

time!

0:01:00, 3:02:01, 0:05:00.45

Přímo vyjádřené hodnoty času. Hodiny, minuty, sekundy a milisekundy.

tuple!

1.2.3, 255.255.255.0, 1.2.3.4.5.6.7.8.9.10.11.12

Hodnoty RGB a RGBA barev, ip adresy a čísla verzí. 3-12 kladných celých čísel, oddělených desetinnou tečkou.

typeset!

series!, number!

Set, či kolekce předdefinovaných hodnot typu datatype! .

unset!

-

Jednotlivá hodnota, reprezentující nepoužitelnou hodnotu.

url!

https://www.red-lang.org, ftp://localhost

Přímo vyjádřené URL (Uniform Resource Locators).

vector!

-

Uspořádaná sekvence hodnot stejného typu (char!, integer!, percent!, float!).

word!

foo

Symbolická hodnota, která může být použita jako proměnná. Identifikátor, jenž odkazuje na hodnotu v daném kontextu.

results matching ""

    No results matching ""