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.