Nazwa funkcji, która zwraca argumenty?


34

Funkcja, która nic nie robi, nie przyjmuje argumentów i nic nie zwraca, jest tradycyjnie nazywana a nooplub no-op. Przykład noop znajduje się poniżej:

function noop(){}

http://en.wikipedia.org/wiki/NOP

Czy istnieje więc nazwa funkcji, która ma jedynie zwracać argumenty i nie robić nic innego? Przykład tego rodzaju funkcji:

function(a){return a}


17
Do głosujących: To nie jest pytanie oparte na opiniach, istnieje ostateczna odpowiedź.
Daenyth,

@ Daenyth „Jest to również powszechnie znane jako przejście” - prawdopodobnie nie tak ostateczne, jak się wydaje
komnata

2
Przekazywanie @gnat służy do odwoływania się do metod w podklasie, które wywołują metodę nadrzędną bez zmiany parametrów lub cokolwiek zwraca metodę nadrzędną. Ale super metoda może nie zwrócić niczego lub czegoś zupełnie innego. Zwracanie tej samej rzeczy, która jest przekazywana, nie jest częścią definicji przekazu. Jeśli tak, to tylko dlatego, że robi to określona metoda nadrzędna. W rzeczywistości metody klasy OO, które nie robią nic, ale zwracają tę samą wartość, którą przekazano, są niezwykle rzadkie.
itsbruce

4
@ Snowman To nie jest świadome oświadczenie. W każdym języku obsługującym funkcje wyższego rzędu, który może zwrócić funkcję, która może wykonać dowolną czynność na dane wejście, bardzo przydatna jest możliwość zwrócenia, w niektórych okolicznościach, funkcji, która nie zmienia danych wejściowych. Umożliwia tworzenie przepływów kontrolnych za pomocą funkcji, a nie słów kluczowych. Podczas składania listy (lub innej struktury) w celu utworzenia funkcji złożonej (jak w przypadku list różnic) funkcja tożsamości jest często naturalną wartością początkową.
itsbruce

Odpowiedzi:


65

Nazywa się to funkcją tożsamości i czasami jest skracane, jak idw teorii kategorii i funkcjonalnych językach programowania.


4
Chociaż należy zauważyć, że większość programistów nie ma wiedzy formalnej ani wiedzy na temat programowania funkcjonalnego, aby to wiedzieć. Jest to również powszechnie znane jako przejście.
Telastyn

5
Zrobiłem wiele formalnej matematyki, ale z jakiegoś powodu nie pamiętałem odpowiedzi, dopóki jej nie zobaczyłem i nie skorygowałem twarzy.
Ixrec,

5
@Telastyn A w Javie 8 wciąż nazywa się to „tożsamość”. Nazwa znika z matematycznego / funkcjonalnego tła i staje się standardem.
Izkata

3
W rzeczy samej. A fakt, że ma formalny rdzeń, w połączeniu z rozpowszechniającą się znajomością tego terminu, czyni go bardziej użytecznym niż jakiś arbitralny żargon specyficzny dla języka.
itsbruce

11
„Przekazywanie” @Telastyn jest prawie zawsze używane w OO, odnosząc się konkretnie do metod, które wywołują metodę rodzica bez zmiany parametrów. Jest to zarówno bardziej szczegółowe, jak i ograniczone niż pojęcie funkcji tożsamości, zwłaszcza dlatego, że metoda OO często nie zwraca niczego oprócz argumentu - lub czegoś zupełnie innego. Tak więc, choć przekazanie zwróci to samo co metoda super, wcale nie jest wymagane zwracanie oryginalnego argumentu. To są różne rzeczy.
itsbruce
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.