Tuesday, February 13, 2018

Typunterschrift - Wikipedia


In der Informatik definiert eine Annotation vom Typ oder die Ein- und Ausgänge für eine Funktion, ein Unterprogramm oder eine Methode. Eine Typensignatur umfasst die Anzahl der Argumente, die Typen der Argumente und die Reihenfolge der in einer Funktion enthaltenen Argumente. Eine Typensignatur wird normalerweise während der Überladungsauflösung verwendet, um die richtige Definition einer Funktion auszuwählen, die unter vielen überladenen Formularen aufgerufen werden soll.

Beispiele [ edit ]

C / C ++ [ edit ]

In 19659006] allgemein als Funktionsprototyp bekannt. In C / C ++ spiegelt eine Funktionsdeklaration ihre Verwendung wider. Zum Beispiel einen Funktionszeiger, der aufgerufen würde als:

 char   c ;   doppelt   d ;   int   retVal   =         ]) ( c   d );  

hat die Unterschrift:

Erlang [ edit ]

In Erlang können Typunterschriften optional deklariert werden als:

 -  spec  ( Funktionsname  ( type1  (),   type2  (19659016] ...)  . ->   out_type  ()).  

Zum Beispiel:

 -  spec  ( is_even  ( Nummer  ())   -   Boolean  ()  [ edit ]  

Eine Typensignatur in der Haskell-Programmiersprache wird im Allgemeinen in folgendem Format geschrieben:

 functionName   ::   arg1Type   ->   arg2Type   ->   ...   ->   argNType  

Beachten Sie diesen Typ Das Ergebnis kann als alles über das erste gelieferte Argument hinaus betrachtet werden. Dies ist eine Folge des Currying, das durch die Unterstützung von Haskell für erstklassige Funktionen ermöglicht wird. Diese Funktion erfordert zwei Eingänge, bei denen ein Argument angegeben wird und die Funktion "curried" ist, um eine Funktion für das nicht angegebene Argument zu erzeugen. So unter Berufung auf f x bezeichnet, wobei f :: a → 19659008] b - c ergibt eine neue Funktion f2 :: b -> c die als f2 b c bezeichnet werden kann .

Die tatsächlichen Typspezifikationen können aus einem tatsächlichen Typ wie Integer oder einer allgemeinen Typvariablen bestehen, die in parametrischen polymorphen Funktionen verwendet wird, wie a oder ] b oder anyType . So können wir so etwas schreiben: functionName :: a -> a -> ... - a

Da Haskell Funktionen mit höherer Ordnung unterstützt, können Funktionen als Argumente übergeben werden. Dies wird geschrieben als: functionName :: ( a -> a ) - a

Diese Funktion übernimmt eine Funktion mit der Typensignatur a -> a und gibt Daten vom Typ a aus.

Java [ edit ]

In der virtuellen Java-Maschine werden interne Typunterschriften verwendet, um Methoden und Klassen auf der Ebene des virtuellen Maschinencodes zu identifizieren.

Beispiel: Die Methode String String . Teilzeichenfolge ( int int int als Ljava / lang / String . Unterkette ( II 19659018] lang / String . Die Signatur der Methode main () sieht folgendermaßen aus:

 public   static   void   main  ( String     args )  

und 19659024] Form von Lsome / Paket / Main / Main : [ Ljava / ] / String ;) V

Die Methodensignatur für die Methode main () enthält drei Modifikatoren:

  • public zeigt an, dass die Methode main () von jedem Objekt aufgerufen werden kann.
  • static zeigt an, dass die Methode main () eine Klasse ist Methode.
  • void zeigt an, dass die Methode main () keinen Rückgabewert hat.

Signatur [ edit

Eine Funktionssignatur besteht aus des Funktionsprototyps. Es gibt die allgemeinen Informationen zu einer Funktion wie Name, Gültigkeitsbereich und Parameter an. Viele Programmiersprachen verwenden Namensverstümmelung, um weitere semantische Informationen von den Compilern an die Linker weiterzugeben. Neben dem Mangeln gibt es einen Überschuss an Informationen in einer Funktionssignatur (die intern bei den meisten Compilern gespeichert wird), die nicht ohne weiteres verfügbar ist, jedoch abgerufen werden kann. [1]

Verständnis des Begriffs a Die Funktionssignatur ist ein wichtiges Konzept für alle Informatikstudien.

  • Moderne Objektorientierungstechniken verwenden Schnittstellen, bei denen es sich im Wesentlichen um Vorlagen aus Funktionssignaturen handelt.
  • C / C ++ verwendet Funktionsüberladung mit verschiedenen Signaturen.

Die Praxis der Mehrfachvererbung erfordert die Berücksichtigung der Funktionssignaturen unvorhersehbare Ergebnisse.

Die Theorie der Informatik und insbesondere das Konzept des Polymorphismus verwenden vielfach das Konzept der Funktionssignatur.

In der Programmiersprache C entspricht die Signatur in etwa der Prototypdefinition.

Der Begriff "Signatur" kann in der Informatik andere Bedeutungen haben. Zum Beispiel:

  • Dateisignaturen können den Inhalt einer Datei identifizieren oder überprüfen.
  • Datenbanksignaturen können das Schema oder eine Version einer Datenbank identifizieren oder überprüfen.
  • In der ML-Familie von Programmiersprachen wird "Signatur" als verwendet ein Schlüsselwort, das sich auf ein Konstrukt des Modulsystems bezieht, das die Rolle einer Schnittstelle spielt.

Methodensignatur [ edit ]

In der Computerprogrammierung, insbesondere der objektorientierten Programmierung, einer Methode wird üblicherweise durch seine eindeutige Methodensignatur identifiziert, die normalerweise den Methodennamen und die Anzahl, Typen und Reihenfolge seiner Parameter enthält. [2] Eine Methodensignatur ist der kleinste Typ einer Methode.

Beispiele [ edit ]

C / C ++ edit ]

die Anzahl und den Typ seiner Parameter, es ist jedoch möglich, einen letzten Parameter zu haben, der aus einem Array von Werten besteht:

 int   printf  ( const   char  *   ...  )  

Die Manipulation dieser Parameter kann durch durchgeführt werden unter Verwendung der Routinen im Standardbibliothekskopf [[stdargh| [ stdarg . h ].

C # [ edit ]

Ähnlich der C-Syntax sieht C # als Methodensignatur seinen Namen und die Anzahl und den Typ seiner Parameter, wobei der letzte Parameter ein Array sein kann von Werten: [3]

 void   Add  ( out   int   sum   params   int      );  [...]  Add  ( out   sum   3   5  ] 11   -  1 );    // sum == 25  

Java [ edit

In der Java Programmiersprache ist eine Methodensignatur der Methodenname und die Anzahl, der Typ und die Reihenfolge seiner Parameter. Rückgabetypen und ausgelöste Ausnahmen gelten nicht als Teil der Methodensignatur.

 Methodenname  ( Parameter )   {...};   break ;  

;

Zum Beispiel haben die folgenden zwei Methoden unterschiedliche Signaturen:

 doSomething  ( String  []   und );   doSomething   String   19659008] ] Die folgenden drei Methoden haben dieselben Signaturen und werden als identisch betrachtet, da sich nur der Rückgabewert unterscheidet. Der Name des Parameters ist nicht Teil der Methodensignatur und wird vom Compiler ignoriert, um die Eindeutigkeit der Methode zu überprüfen. 

 int   doSomething  ( int   und )    String   doSomething  (19659139909909909909909909909909909909909909909909909909697909909909909909909909909909909909909909697699909909909909909909909909999909909999909909697697699697697697697697697) ] int   doSomething  ( int   z )    java  0999099099099099999999999999999999999999999099999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999099999999999999999999999999999999 -C  [ edit ]  

In der Programmiersprache Objective-C werden Methodensignaturen für ein Objekt in der Interface-Header-Datei deklariert. Zum Beispiel,

 -   ( id )  initWithInt:  ( int )  value ; initWithInt das ein allgemeines Objekt (eine  id ) zurückgibt und ein ganzzahliges Argument verwendet. Objective-C erfordert nur, dass ein Typ in einer Signatur explizit ist, wenn der Typ nicht  id  ist; Diese Unterschrift ist gleichwertig: 

 -   initWithInt:  ( int )  value ;  

References [ edit

No comments:

Post a Comment