Skip to content

Latest commit

 

History

History
65 lines (57 loc) · 6.4 KB

datatypes.adoc

File metadata and controls

65 lines (57 loc) · 6.4 KB

Datové typy

Každá hodnota v jazyce 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 které se ve většině případů nepotřebujete starat. 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ů

Označení -- indikuje neexistenci literálové formy dané hodnoty. Tyto hodnoty musí být vytvořeney pomocí make nebo konstrukční skladbou (pro mnohé typy zatím To Be Done).

Typ

Literálová forma

Popis

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!

[email protected], [email protected]

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!

--

Neznámá (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.

money!

$123, -USD$1'234.56789

Množství určité (nebo generické) měny.

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ě vyhodnocovaný 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.

ref!

@foo

Uvádí jméno odkazu.

refinement!

/bar

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

routine!

--

Funkce s tělem Red/System se specifikacemi v Red.

set-path!

foo/bar/baz:

Nastaví "kontextuální referenci" (slovo v kontextu, index slotu 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!

--

Typ nepoužitelné (nepřiřazené) hodnoty.

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.