Mówiąc ustnie o metodach, nigdy nie jestem pewien, czy użyć słowa argument lub parametr, czy coś innego. Tak czy inaczej, inni ludzie wiedzą, co mam na myśli, ale co jest poprawne i jaka jest historia terminów?
Jestem programistą C #, ale zastanawiam się również, czy ludzie używają różnych terminów w różnych językach.
Dla przypomnienia jestem samoukiem bez wiedzy informatycznej. (Proszę, nie mów mi, żebym czytał Kod Complete, ponieważ proszę o to z korzyścią dla innych osób, które nie mają jeszcze kopii cudownej książki Steve'a McConnella .)
Podsumowanie
Ogólny konsensus wydaje się być taki, że można używać tych terminów zamiennie w środowisku zespołowym. Może z wyjątkiem definicji precyzyjnej terminologii; następnie możesz użyć „ formalnego argumentu / parametru” i „ faktycznego argumentu / parametru”, aby ujednoznacznić.
źródło
Odpowiedzi:
Parametr jest zmienną w definicji metody. Gdy wywoływana jest metoda, argumentami są dane przekazywane do parametrów metody.
źródło
Parametr jest zmienny w deklaracji funkcji.
Argument to rzeczywista wartość tej zmiennej przekazywanej do funkcji.
źródło
*args
lubARGV
nie*params
:-)*params
będzie nazwą zmiennej, która ma przechowywać nazwy parametrów (być może używana do introspekcji).*args
deklaruje parametr,args
którego wartością jest lista (nazwa i typ znane w czasie deklaracji) argumentów (których liczba jest znana tylko w czasie połączenia).Na ten temat jest już wpis w Wikipedii (patrz parametr ), który definiuje i rozróżnia parametry parametru i argument . Krótko mówiąc, parametr jest częścią sygnatury funkcji / procedury / metody, a argument to rzeczywista wartość podana w czasie wykonywania i / lub w miejscu wywołania dla parametru.
Artykuł w Wikipedii stwierdza również, że te dwa terminy są często używane synonimicznie (szczególnie w przypadku nieformalnego rozumowania o kodzie):
Biorąc pod uwagę następującą przykładową funkcję w C, która dodaje dwie liczby całkowite
x
iy
będzie określana jako jej parametry:W witrynie wywołującej
add
, takiej jak przykład pokazany poniżej, 123 i 456 będą nazywane argumentami wywołania.Ponadto niektóre specyfikacje językowe (lub dokumentacja formalna) wybierają wyłącznie parametr lub argument i używają przymiotników takich jak formalne i rzeczywiste zamiast rozróżniać oba przypadki. Na przykład dokumentacja C / C ++ często odnosi się do parametrów funkcji jako argumentów formalnych, a argumentów wywołania funkcji jako argumentów rzeczywistych . Na przykład zobacz „ Argumenty formalne i rzeczywiste ” w Skorowidzu języka Visual C ++ .
źródło
Prosty:
źródło
Parametr jest czymś, co musisz wypełnić, gdy wywołujesz funkcję. Włożyłeś w to argument.
Po prostu ustaw: argument wchodzi w parametr, argument jest wartością parametru.
Trochę więcej informacji na: http://en.wikipedia.org/wiki/Parameter_(computer_science)#Parameters_and_arguments
źródło
Parametr jest zmienny w deklaracji funkcji.
Argument to rzeczywista wartość tej zmiennej przekazywanej do funkcji.
źródło
MCSD Cerfification Toolkit (egzamin 70-483) Programowanie w C # , 1. wydanie, Wrox, 2013
Scenariusz przypadku w świecie rzeczywistym
źródło
Podczas edycji często zniechęcam się tym, jak ludzie zapominają: języki strukturalne są oparte na językach naturalnych.
Po angielsku
„Parametr” jest symbolem zastępczym. Ustawiają format odpowiedzi w języku mówionym. Z definicji jest to strona połączenia, co ogranicza odpowiedź.
„Argument” jest rozważaną pozycją. Argumentujesz swoją opinię: rozważasz argument.
Główna różnica
Rolą tematyczną argumentu jest agent. Rolą tematyczną parametru jest odbiorca.
Interakcje
Pomyśl o argumencie jako części męskiej, dzięki czemu parametr będzie częścią żeńską. Argument przechodzi do parametru.
Stosowanie
Parametr jest zwykle używany w definicjach. Argument jest zwykle używany w wywołaniach.
pytania
Dokończ zdanie, aby było mniej dysonansowe.
(A) Mówiąc o definicji:
(B) Mówiąc o wezwaniu:
Odpowiedzi
(ZA)
(B)
Pokrywają się
Jak możesz sobie wyobrazić, po udzieleniu odpowiedzi: w języku mówionym te słowa czasami dają identyczne odpowiedzi!
Co do zasady:
Zwykle, jeśli ktoś chce informacji o parametrach, chce wiedzieć więcej o typie, nazwie zmiennej itp. Może się zdezorientować, jeśli podasz tylko przykładowe argumenty.
źródło
Ten przykład może pomóc.
źródło
Zawsze pamiętaj, że: - Argumenty są przekazywane, a parametry są odbierane.
źródło
Te parametry danej funkcji / metody opisać, wartości, które używa do obliczenia jego wynik.
Te argumenty o funkcji są wyznaczone wartości tych parametrów w trakcie danego wywołania funkcji / metody.
źródło
Lub może być jeszcze łatwiejsze do zapamiętania w ten sposób, w przypadku opcjonalnych argumentów dla metody:
parameter
jest parametrem, jego wartością"argument"
jest argumentem :)źródło
Powiedzmy, że jesteś linią lotniczą. Budujesz samolot. Instalujesz w nim miejsca. Następnie wypełniasz samolot pasażerami i wysyłasz gdzieś. Pasażerowie (a raczej niektóre ich zmienione przestrzennie wersje) wysiadają. Następnego dnia ponownie korzystasz z tego samego samolotu i tych samych miejsc, ale tym razem z różnymi pasażerami.
Płaszczyzna jest twoją funkcją.
Parametry są siedzeniami.
Argumentami są pasażerowie, którzy siedzą na tych miejscach.
źródło
Parametry i argumenty
Źródło: Absolute C ++, Walter Savitch
To jest,
źródło
Warunki są nieco wymienne. Różnica opisana w innych odpowiedziach jest lepiej wyrażona terminami parametr formalny dla nazwy użytej w treści funkcji i parametr wartości podanej w miejscu wywołania ( argumenty formalne i argumenty są również powszechne).
Zauważ też, że w matematyce termin argument jest znacznie bardziej powszechny, a parametr zwykle oznacza coś zupełnie innego (chociaż parametr w równaniu parametrycznym jest zasadniczo argumentem dwóch lub więcej funkcji).
źródło
Argument jest wystąpieniem parametru.
źródło
Tak! Parametry i argumenty mają różne znaczenia, które można łatwo wyjaśnić w następujący sposób:
Parametry funkcji to nazwy wymienione w definicji funkcji.
Argumenty funkcji to rzeczywiste wartości przekazywane do (i odbierane) przez funkcję.
źródło
Proste objaśnienia bez kodu
„Parametr” jest bardzo ogólną, szeroką rzeczą, ale „argument: jest bardzo konkretną, konkretną rzeczą. Najlepiej ilustrują to codzienne przykłady:
Przykład 1: Automaty vendingowe - parametr to Pieniądze, argument to 2,00 $
Większość maszyn pobiera dane wejściowe i zwraca dane wyjściowe. Na przykład automat sprzedający przyjmuje jako dane wejściowe: pieniądze i zwraca: napoje gazowane jako wynik. W tym konkretnym przypadku przyjmuje jako parametr: pieniądze.
Jaki jest zatem argument? Cóż, jeśli wrzucę 2,00 $ do maszyny, wówczas argumentem będzie: 2,00 $ - jest to bardzo specyficzne użyte wejście.
Przykład 2: Samochody - parametr to benzyna
Rozważmy samochód: akceptują benzynę (benzynę bezołowiową) jako wkład. Można powiedzieć, że maszyny te akceptują parametry typu: benzyna. Argumentem byłby dokładny i konkretny wkład, jaki włożyłem do mojego samochodu. np. w moim przypadku argumentem byłoby: 40 litrów benzyny bezołowiowej / benzyny.
Przykład 3 - Opracowanie argumentów
Argument jest szczególnym i konkretnym przykładem danych wejściowych. Załóżmy, że moja maszyna bierze osobę za wkład i zamienia ją w kogoś, kto nie jest kłamcą.
Czym zatem jest argument? Argumentem będzie konkretna osoba faktycznie włożona do maszyny. np. jeśli Colin Powell zostanie wstawiony do maszyny, argumentem będzie Colin Powell.
Tak więc parametrem byłaby osoba jako pojęcie abstrakcyjne, ale argumentem zawsze byłaby konkretna osoba o konkretnym nazwisku, która jest umieszczona w maszynie. Argument jest konkretny i konkretny.
To jest różnica. Prosty.
Zmieszany?
Opublikuj komentarz, a naprawię wyjaśnienie.
źródło
Lub nawet prościej ...
Argumenty w!
Parametry wyłączone!
źródło
Oba nie mają dużej różnicy w użyciu w C, oba terminy są używane w praktyce. Przeważnie argumenty są często używane z funkcjami. Wartość przekazywana z instrukcją wywoływania funkcji nazywa się argumentem, a parametrem byłaby zmienna, która kopiuje wartość w definicji funkcji (nazywana jako parametr formalny).
W powyższym kodzie
num1
inum2
są formalne parametry ia
ib
są rzeczywiste argumenty.źródło
Samouczki Java firmy Oracle definiują to rozróżnienie w następujący sposób: „Parametry odnoszą się do listy zmiennych w deklaracji metody. Argumenty są rzeczywistymi wartościami przekazywanymi podczas wywoływania metody. Podczas wywoływania metody użyte argumenty muszą być zgodne z parametrami deklaracji według rodzaju i kolejności. ”
Bardziej szczegółowe omówienie parametrów i argumentów: https://docs.oracle.com/javase/tutorial/java/javaOO/arguments.html
źródło
Logicznie rzecz biorąc, mówimy o tym samym. Myślę jednak, że prosta metafora byłaby pomocna w rozwiązaniu tego dylematu.
Jeśli metafory można nazwać różnymi punktami połączenia, możemy je przyrównać do punktów na ścianie. W takim przypadku możemy rozważyć parametry i argumenty w następujący sposób;
Parametry są gniazdami wtyczki, które mogą przyjmować różne kształty. Ale pasują do nich tylko niektóre typy wtyczek.
Argumentami będą rzeczywiste wtyczki, które zostałyby podłączone do punktów / gniazd wtyczki w celu aktywacji niektórych urządzeń.
źródło
Parametr jest zmienną w definicji funkcji.
Argument jest wartością parametru
źródło
Zasadniczo terminy parametr i argument są używane zamiennie w celu oznaczenia informacji przekazywanej do funkcji.
Jednak z perspektywy funkcji:
źródło
Kiedy tworzymy metodę (funkcję) w Javie, metoda taka jak ta ..
data-type name of the method (data-type variable-name)
W nawiasie są to parametry, a gdy wywołujemy metodę (funkcję), przekazujemy wartość tego parametru, zwaną argumentem.
źródło
Według książki Josepha Alabahari „C # in a Nutshell” (C # 7.0, s. 49):
W niektórych językach ludzkich (afaik włoski, rosyjski) powszechnie stosuje się synonimy dla tych terminów.
Na moim uniwersytecie profesorowie używają obu rodzajów nazwisk.
źródło
Parametry to zmienne otrzymywane przez funkcję, dlatego są widoczne w deklaracji funkcji i zawierają nazwę zmiennej wraz z typem danych. Argumenty to rzeczywiste wartości przekazywane do innej funkcji. dlatego możemy je zobaczyć w wywołaniu funkcji. Są to tylko wartości bez typu danych
źródło
Parametry formalne funkcji są wymienione w deklaracji funkcji i są używane w treści definicji funkcji. Parametr formalny (dowolnego rodzaju) jest rodzajem spacji lub symbolu zastępczego, który jest wypełniany czymś, gdy funkcja jest wywoływana.
Argumentem jest coś, co służy do wypełnienia w formalnym parametru. Kiedy zapisujesz wywołanie funkcji, argumenty są wymienione w nawiasach po nazwie funkcji. Po wywołaniu funkcji argumenty są wprowadzane do parametrów formalnych.
Terminy call-by-value i call-by-reference odnoszą się do mechanizmu stosowanego w procesie podłączania. W metodzie call-by-value używana jest tylko wartość argumentu. W tym mechanizmie call-by-value parametr formalny jest zmienną lokalną, która jest inicjowana do wartości odpowiedniego argumentu. W mechanizmie call-by-reference argumentem jest zmienna i używana jest cała zmienna. W mechanizmie wywołania przez referencję zmienna argumentu zastępuje parametr formalny, tak więc każda zmiana parametru formalnego jest faktycznie dokonywana w zmiennej argumentu.
źródło
Parametry to zmienne, które są używane do przechowywania danych, które są przekazywane do funkcji w celu użycia przez funkcję. Argumenty to rzeczywiste dane, które są przekazywane do funkcji po jej wywołaniu:
źródło
Przemyślałem to i zdałem sobie sprawę, że moja poprzednia odpowiedź była błędna. Oto znacznie lepsza definicja
{ Wyobraź sobie karton jaj: paczka ogniw do kiełbas: I pokojówka } Reprezentują one elementy funkcji potrzebnej do przygotowania o nazwie: (użyj dowolnej nazwy: Powiedzmy, że gotowanie to nazwa mojej funkcji).
Pokojówka to metoda.
(Musisz __zadzwonić_ lub poprosić tę metodę o zrobienie śniadania) ( Robienie śniadania jest funkcją o nazwie Gotowanie ) _
Jajka i kiełbaski to Parametry:
(ponieważ liczba jaj i liczba kiełbas, które chcesz zjeść, to __zmienna_.) _
Twoja decyzja jest argumentem:
Reprezentuje __Wartość_ wybranej liczby jaj i / lub kiełbas, które gotujesz ._
{ Mnemoniczny }
_ „Kiedy zadzwonisz do pokojówki i poprosisz ją o zrobienie śniadania, ona __argues_ z tobą o ile jajek i kiełbas powinieneś zjeść. Martwi się twoim cholesterolem __
(Argumenty są zatem wartościami kombinacji parametrów, które zadeklarowałeś i postanowiłeś przekazać do swojej funkcji)
źródło