Hodnotami typu ref! jsou pojmenované odkazy, jako jsou názvy účtů u sociálních medií nebo identifikátory s implikovaným názvem domény.
Datový typ ref! patři do typesetu any-string!, přičemž je konceptuálně blízký datovému typu issue!, od něhož se liší v implementaci (string-like vs. symbol-like) a v poskytované sadě kompromisů.
Hodnoty typu ref! lze vytvořit s použitím literálové syntaxe při načítání skriptu nebo při runtime konstruktorem make či konverzí to.
<ref> format : @<name> <name> : volitelný název odkazu
-
<name>je nula či více znaků jiných než:# $ ' , = > @ \ ^; -
literálová forma je ukončena jedním z těchto způsobů:
" ( ) ; < [ ] { }nebo mezerou (space, tab,CR,LF) .
Příklady
@ @red_lang @dockimbel @§2.1
Při použití konstruktoru make nutno respektovat tato pravidla:
-
specifikace typu
float!ainteger!označují počet před-alokovaných bajtů (float!is truncated); -
konstrukce z každé jiné specifikace je ekvivalentní konverzi
to.
Příklady
make ref! 9.2
== @
make ref! 14
== @
make ref! <ref>
== @ref
make ref! [red (_lang)]
== @red_lang
make ref! #{76616C7565}
== @value
make ref! none
** cannot make error
make ref! #datatype
== @datatype
Datový typ ref! podporuje řadu typových konverzí, platných pro typeset any-string!. Při konverzi dané hodnoty na ref! jsou použity níže popsané transformace - s předsazením znaku @.
ref!| Datatype | Description |
|---|---|
|
Obsah je kopírován doslovně. |
|
Prezentace obsažených hodnot jsou zřetězeny (concatenated) a vnější vymezení je odvrženo. |
|
Je konvertováno na řetězec, obsahuje-li platné kódování v UTF-8. |
|
Zakázáno. |
ostatní |
Stejně jako u |
Příklady
to-ref [f /o #o]
== @foo
to-ref #{626172}
== @bar
to-ref <qux>
== @qux
to-ref none
** cannot MAKE/TO string from: none
Jsouce částí typesetu any-string!, podporují hodnoty ref! konverzi na mnoho typů:
ref!| Datatype | Description |
|---|---|
|
Ekvivalentní k uzavření hodnoty |
|
Obsah je kopírován doslovně. |
|
Obecně ekvivalentní ke konverzi na Více podrobností o podporovaných literálových formách lze nalézt v příslušné literatuře. |
|
Vrací se hodnota daného datového typu (singleton). |
|
Vrací se logická hodnota |
|
Jako výsledek se vrací binární prezentace v kódování UTF-8. |
|
První znak, pokud přítomen, je extrahován. |
Other |
Zakázáno. |
Příklady
to-paren @ABC
== (@ABC)
to-tag @tag
== <tag>
to-float @+88.7
== 88.7
to-tuple @1.3.3.7
== 1.3.3.7
to-none @whatever
== none
to-logic @this-ref-is-false
== true
to-binary @matrix
== #{6D6174726978}
to-char @
** cannot MAKE/TO char from:
to-char @.:
== #"."
Hodnota typu ref! podporuje všechny akce pro řady (kromě put, sort, trim) a všechny komparace spou s min a max.
Příkaz form aplikovaný na hodnotu typu ref! ruší znak @, zatímco mold jej zachovává .
Příklady
reverse @alucard == @dracula find @haystack "needle" == none find @haystack 'stack == @stack skip @stackoverflow 5 == @overflow @this = "this" == true @this = @that == false @that == @that == true min @A @Z == @A form @content == "content" mold/part @catastrophy 4 == "@cat"