En operation er en konstruktion i programmeringssprog , der i skrift ligner matematiske operationer, det vil sige en speciel måde at registrere nogle handlinger på.
De mest brugte er aritmetiske, logiske og strengoperationer . I modsætning til funktioner er operationer ofte grundlæggende elementer i sproget og betegnes med forskellige tegnsætningstegn snarere end alfanumeriske tegn; de har en speciel infix-syntaks og ikke-standard-argumentoverførselsregler. Terminologien er dog en del forskellig fra sprog til sprog.
Det engelske ord operator , som svarer til udtrykket "operation" , er nogle gange fejlagtigt oversat til "operator". Faktisk (af historiske årsager) betyder det russiske udtryk "operatør" det samme som " instruktion " , hvilket svarer til det engelske udsagn [1] . Forvirringen blev forværret af, at i C er tildeling og stigning/nedsættelse både operatører og operationer.
Faktisk er en operation den samme funktion , men skrevet på en speciel måde. Af denne grund giver det mening at kunne definere operationer på vilkårlige typer på samme måde som metoder , så du kan arbejde med dem på samme måde, som du ville med elementære typer. Denne funktion kaldes " operatøroverbelastning " og findes på de fleste 4. og 5. generations sprog . På sådanne sprog erstatter oversætteren faktisk et opkald til den tilsvarende funktion i stedet for at udføre en handling.
Operationer divideres med antallet af accepterede argumenter i:
Da operationer i notation ligner algebraiske udtryk , er der for dem, som for sidstnævnte, 3 syntaksmuligheder:
Til binære og ternære (med 3 operander) operationer bruges i langt de fleste tilfælde infix-notation - af den simple grund, at det er accepteret i matematik og mest velkendt for de fleste. Der er ingen infiksnotation for unære operationer, og præfiksnotation bruges normalt.
Operationer flytter normalt fra sprog til relaterede sprog - for eksempel findes C -sprogoperationer i C++ , Java , JavaScript og mange andre.
Skilt | Drift i gang | Programmeringssprog |
---|---|---|
a = bellera := b | opgave | næsten alle |
Aritmetik | ||
a + b | tilføjelse af argumenter | næsten alle |
a - b | subtraktion | næsten alle |
-a | tegnskifte | næsten alle |
a / b,a div b | division | næsten alle |
a % b,a mod b | resten af divisionen (modulo division) | næsten alle |
a++ a-- |
stigning med 1 med tildeling ( stigning ) sænk med 1 med tildeling ( stigning ) |
C , Java , PHP |
a ^ beller a ^^ bellera ** b | eksponentiering | BASIC , Fortran , Ruby , Python , Haskell (alle 3) |
hjerne teaser | ||
a & b, eller a && b, ellera and b | konjunktion (logisk multiplikation) | næsten alle |
a | b, eller a || b, ellera or b | disjunktion (logisk tilføjelse) | |
~a, eller !a, ellernot a | inversion (logisk negation) | |
a = bellera == b a <> beller a /= bellera != b |
ligestillingsprøve ulighedstest | |
a > b,a >= b a < b,a <= b |
større end, større end eller lig med mindre end, mindre end eller lig med | |
a ? b : c | ternær betinget operation (hvis betingelse a er sand, er hele udtrykket lig med b , ellers c ) | C, C++, Java, PHP |
Snor | ||
a + beller a & beller a.b(PHP) eller a..b(Lua) eller a ++ b(Haskell) | sammenkædning (sammenflette) | næsten alle |
Bitvis | ||
a & b, a og b (Pascal, Kotlin), a /\ b (Prolog), a .&. b (Haskell) | bitvis konjunktion | C / C++ , Java , C# , Ruby , Python , Pascal , Kotlin , Prolog , Haskell |
en | b, a eller b (Pascal, Kotlin), a \/ b (Prolog), a .|. (Haskell) | Bitvis disjunktion | |
~a, ikke a (Pascal), inv a (Kotlin), \a (Prolog) | bitvis negation | C / C++ , Java , C# , Ruby , Python , Pascal , Kotlin , Prolog |
a^b, xor (Pascal, Kotlin) | XOR | C / C++ , Java , C# , Ruby , Python , Pascal , Kotlin |
a << b, a shl b (Pascal, Kotlin)
|
Bitskift til venstre
|