Wielokropek (programowanie komputerowe)

W programowaniu komputerowym notacja wielokropka (.. lub ...) jest używana do oznaczania zakresów , nieokreślonej liczby argumentów lub katalogu nadrzędnego. Większość języków programowania wymaga, wielokropek był zapisany jako seria kropek; nie można użyć pojedynczego znaku wielokropka ( Unicode ).

Zakresy

W niektórych językach programowania (w tym Ada , Perl , Ruby , Apache Groovy , Kotlin , Haskell i Pascal ) skrócona wielokropek z dwiema kropkami jest używana do reprezentowania zakresu wartości z dwoma punktami końcowymi; na przykład, aby iterować po liście liczb całkowitych od 1 do 100 włącznie w Perlu:

przed każdym (1..100)

W języku Ruby operator ... oznacza zakres półotwarty, tj. obejmujący wartość początkową, ale nie wartość końcową.

W Rust operator ..= oznacza zakres obejmujący obserwacje w dopasowaniach, a operator .. reprezentuje zakres bez wartości końcowej.

Perl i Ruby przeciążają operator „..” w kontekście skalarnym jako operator przerzutnika - stanowy bistabilny test logiczny , z grubsza odpowiednik „true while x but not yet y ”, podobnie jak operator "," w sed i AWK .

GNU C mają rozszerzenie do języków C i C++, które pozwala na stosowanie zakresów wielkości liter w instrukcjach switch :

 
       0       
                 
                   
   
 switch  (  u  )  {  przypadek  ...  0x7F  :  putchar  (  c  );  przerwa  ;  przypadek  0x80  ...  0x7FF  :  putchar  (  0xC0  +  c  >>  6  );  putchar  (  0x80  +  c  &  0x3f  );  przerwa  ;  sprawa  0x800  ...  0xFFFF  :  putchar  (  0xE0  +  c  >>  12  );  putchar  (  0x80  +  (  c  >>  6  )  &  0x3f  );  putchar  (  0x80  +  (  c  >>  12  )  );  przerwa  ;  domyślnie  :  błąd  (  "nieobsługiwany!"  );  } 

Dodatkowo GNU C pozwala na podobną składnię zakresu dla wyznaczonych inicjatorów , dostępną tylko w języku C:

        int  tablica  [  10  ]  =  {  [  0.  .  .5  ]  =  1  }; 

Delphi / Turbo Pascal / Free Pascal:

    
     var  FilteredChars  :  zestaw  [  #0  ..  #32  ,  #127  ,  'a'  .. '   z  '  ]  ;  var  Zaznaczone  elementy  :  zestaw  [  4  ,  10..38  ,  241  ,  58  ]  ;  _  _ 

W Unified Modeling Language (UML) dwuznakowa wielokropek służy do wskazania zmiennej liczebności powiązania. Na przykład liczność 1..* oznacza, że ​​liczba elementów zagregowanych w asocjacji może wahać się od 1 do nieskończoności (odpowiednik użycia Kleene plus ).

Nadrzędna Lokalizacja

W systemach operacyjnych Windows i systemach typu Unix „..” służy do uzyskiwania dostępu do katalogu nadrzędnego w ścieżce .

Niekompletny kod

W Perlu i Raku 3-znakowa wielokropek jest również znana jako operator „yada yada yada” i, podobnie jak jej znaczenie językowe , służy jako „zastępstwo” dla kodu, który ma zostać wstawiony później.

Python3 pozwala również na użycie 3-znakowej wielokropka jako wyrazistego elementu zastępczego do późniejszego wstawienia kodu.

Zmienna liczba parametrów

C i C++

W języku programowania C wielokropek jest używany do reprezentowania zmiennej liczby parametrów funkcji . Na przykład:

int printf ( const char * format , ... );

Powyższą funkcję w C można następnie wywołać z różnymi typami i liczbami parametrów, takimi jak:

printf ( "liczby %i %i %i" , 5 , 10 , 15 );

I

printf ( "wprowadź łańcuch %s, %f" , "inny ciąg" , 0.5 );

C99 wprowadził makra ze zmienną liczbą argumentów .

C++11 zawierał preprocesor C99, a także wprowadził szablony ze zmienną liczbą argumentów .

Jawa

Od wersji 1.5 Java przyjęła tę funkcję „varargs”. Na przykład:

public int func ( int num , String ... strings )

PHP

PHP 5.6 obsługuje użycie wielokropka do definiowania jawnie zmiennej funkcji , gdzie ... przed argumentem w definicji funkcji oznacza, że ​​argumenty od tego momentu zostaną zebrane w tablicę. Na przykład:

   

     


     funkcja  zmienna_funkcja  (  $a  ,  $b  ,  ...  $inne  )  {  return  $inne  ;  }  var_dump  (  zmienna_funkcja  (  1  ,  2  ,  3  ,  4  ,  5  )); 

Tworzy to wyjście:

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

Wiele wymiarów

W Pythonie , szczególnie w NumPy , wielokropek jest używany do krojenia dowolnej liczby wymiarów dla wielowymiarowej tablicy:

   
     
 0 

0  
 >>>  importuj  numpy  jako  np  >>>  t  =  np  .  losowy  .  rand  (  2  ,  3  ,  4  ,  5  )  >>>  t  [  ...  ,  ]  .  kształt  # wybierz pierwszy element z ostatniego wymiaru, skopiuj resztę  (2, 3, 4)  >>>  t  [  ,  ...  ]  .  kształt  # wybierz pierwszy element z pierwszego wymiaru, skopiuj resztę  (3, 4, 5) 

Inna semantyka

W MATLAB trzyznakowa wielokropek jest używana do wskazania kontynuacji linii , tworząc sekwencję linii


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

semantycznie równoważne pojedynczej linii

x = [ 1 2 3 4 5 6 ];

W Raku rzeczywisty znak wielokropka (...) Unicode (U+2026) służy jako typ znacznika w ciągu formatu.