Elipsa (počítačové programování) - Ellipsis (computer programming) - Wikipedia

v programování, elipsa k označení se používá notace (.. nebo ...) rozsahy, neurčený počet argumentů nebo nadřazený adresář. Většina programovacích jazyků vyžaduje elipsa být psán jako série období; jediný (Unicode ) znak elipsy nelze použít.

Rozsahy

V některých programovací jazyky (počítaje v to Ada, Perl, Rubín, Apache Groovy, Kotlin, Haskell, a Pascal ), zkrácená elipsa se dvěma tečkami se používá k reprezentaci rozsahu hodnot daných dvěma koncovými body; například iterovat seznamem celá čísla mezi 1 a 100 včetně v Perlu:

foreach (1..100)

V Ruby ... operátor označuje napůl otevřený rozsah, tj. který zahrnuje počáteční hodnotu, ale nikoli koncovou hodnotu.

V Rustu ..= operátor označuje inkluzivní rozsah pro případy v zápasech a .. operátor představuje rozsah bez koncové hodnoty.

Perl a Ruby přetížení operátor „..“ ve skalárním kontextu jako a operátor klopného obvodu - a stavový bistabilní Booleovský test, zhruba ekvivalentní "true while X ale ještě ne y", podobně jako operátor", "v sed a AWK.[1]

The Sbírka překladačů GNU má rozšíření pro jazyk C a C ++, které umožňuje rozsahy případů v příkazy switch:

přepínač(u) {  případ     0 ...   0x7F : putchar(C); přestávka;  případ  0x80 ...  0x7FF : putchar(0xC0 + C>>6);  putchar( 0x80 + C&0x3f); přestávka;  případ 0x800 ... 0xFFFF : putchar(0xE0 + C>>12); putchar( 0x80 + (C>>6)&0x3f); putchar( 0x80 + (C>>12) ); přestávka;  výchozí: chyba("není podporováno!");}

Delphi / Turbo Pascal / Free Pascal:

var FilteredChars: soubor z [#0..#32,#127,'A'..'z'];var Zaškrtnuté položky: soubor z [4,10..38,241,58];

V Unifikovaný Modelovací Jazyk (UML), dvouznaková elipsa se používá k označení variabilní mohutnosti asociace. Například mohutnost 1 .. * znamená, že počet prvků agregovaných v asociaci se může pohybovat od 1 do nekonečna (použití ekvivalentní Kleene plus ).

Nadřazený adresář

V operačních systémech Windows a Unix se pro přístup k nadřazenému zařízení používá znak „..“ adresář v cesta.

Neúplný kód

V Perlu[2] a Raku[3] elipsa se třemi znaky je také známá jako operátor „yada yada yada“ a podobně jako jeho jazykový význam, slouží jako „záskok“ pro vložení kódu později.

Python3 také umožňuje použít tříznakovou elipsu jako expresní držák kódu, který se má vložit později.

Variabilní počet parametrů

C a C ++

V Programovací jazyk C., elipsa se používá k reprezentaci a variabilní počet parametrů do a funkce. Například:

int printf( konst char* formát, ... );[4]

Výše uvedená funkce v C by pak mohla být volána s různými typy a počty parametrů, například:

printf("čísla% i% i% i", 5, 10, 15);

a

printf("vstupní řetězec% s,% f", "další řetězec", 0.5);

C99 zavedená makra s a variabilní počet argumentů.[5]

C ++ 11 zahrnoval preprocesor C99,[6] a také představil šablony s a variabilní počet argumentů.[7]

Jáva

Od verze 1.5 Jáva přijala tuto funkci „varargs“. Například:

veřejnost int func(int počet, Tětiva... struny)

PHP

Podporuje PHP 5.6[8] použití elipsy k explicitní definici variadická funkce, kde ... before an argument in a function definition means that arguments from that point on will be collected into an array. Například:

funkce variadic_function($ a, $ b, ...$ ostatní){    vrátit se $ ostatní;}var_dump(variadic_function(1, 2, 3, 4, 5));

Produkuje tento výstup:

  pole(3) {    [0]=>    int(3)    [1]=>    int(4)    [2]=>    int(5)  }

Více rozměrů

v Krajta, zejména v NumPy, elipsa se používá ke krájení libovolného počtu dimenzí pro vysokorozměrné pole:[9]

>>> import numpy tak jako np>>> t = np.náhodný.rand(2, 3, 4, 5)>>> t[..., 0].tvar # vyberte 1. prvek z poslední dimenze, zkopírujte zbytek(2, 3, 4)>>> t[0, ...].tvar # vyberte 1. prvek z první dimenze, zkopírujte zbytek(3, 4, 5)

Další sémantika

v MATLAB, se k označení používá elipsa se třemi znaky pokračování řádku,[10] vytváření posloupnosti řádků

x = [1 2 3 ...
4 5 6 ];

sémanticky ekvivalentní jednomu řádku

x = [1 2 3 4 5 6];

V Raku skutečný Unicode Znak se třemi tečkami (U + 2026) (…) slouží jako typ značky ve formátovacím řetězci.[11]

Reference

  1. ^ perlop - perldoc.perl.org
  2. ^ https://perldoc.perl.org/perlsyn.html#The-Ellipsis-Statement
  3. ^ https://doc.perl6.org/language/operators#listop_...
  4. ^ http://www.cplusplus.com/reference/cstdio/printf/
  5. ^ Variadic Macros - Using the GNU Compiler Collection (GCC)
  6. ^ Pracovní pracovní změny pro synchronizaci preprocesoru C99 - http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1653.htm
  7. ^ „Pracovní koncept, standard pro programovací jazyk C ++“ (PDF).: 14.5.3 Variadic šablony
  8. ^ https://wiki.php.net/rfc/variadics
  9. ^ http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html
  10. ^ Mathworks.com
  11. ^ Exegeze 7: Formáty - perl6 Archivováno 15.06.2011 na Wayback Machine[self-publikoval zdroj? ]