Welche Klammern in der IT sind was?
Wann benutze ich <>,(),[] und {} im IT?
3 Antworten
ZaoDaDong hat ja schon eine gute Antwort dazu gegeben. Die Beispiele beziehen sich hauptsächlich auf Programmiersprachen, wobei die Klammern selbst innerhalb einer einzelnen Programmiersprache mehrere Funktionen erfüllen können.
Beispiele zu < >
- Als Vergleichsoperatoren:
Wenn a kleiner als b ist, dann tue dies und das
if (a < b)
Da gibt es dann auch verschiedene Variationen, wie z.B.
- > größer als
- >= größer oder gleich
- < kleiner als
- <= kleiner oder gleich
- Z.B. in Excel und VBA gibt es auch <> für ungleich
In PowerShell oder Batch benutzt man stattdessen aber Kürzel, wie z.B. -lt für "kleiner als", -gt für "größer als" etc.
- Als Teil eines "Arrow-Operators"
In einigen Sprachen gibt es einen Arrow-Operator ( -> oder => ), mit dem man kurze Funktionen definieren kann, die man z.B. direkt als Argument für andere Funktionen angeben kann.
z.B. Sortiere die Personen-Liste nach Nachnamen (in Java):
persons.sort(Comparator.comparing(person -> person.getLastName()));
In anderen Sprachen kann der Arrow-Operator aber eine andere Bedeutung haben. Z.B. in PHP benutzt man den dünnen Pfeil (->), um die Objektattribute oder -methoden aufzurufen und den dicken Pfeil (=>), um Key-Value Paare in Arrays zu speichern
- Als Typdefinition
Bei vielen Programmiersprachen gibt es sogenannte generische Klassen, bzw. generische Objekte. Das sind Objekte, die in irgendeiner Weise mit unterschiedlichen Objekten zusammenarbeiten können. Z.B. Listen, in denen verschiedene Arten von Objekten gespeichert werden können. Damit man in eine Liste keine Objekte vom falschen Typ einfügen kann, kann man den Objekttyp bei der Deklaration in spitze Klammern schreiben.
Z.B. Lege eine Liste für Objekte vom Typ Person an (in Java)
List<Person> persons = new ArrayList<Person>();
- Als HTML-Tag
In HTML und XML werden die spitzen Klammern als Anfang und Ende eines Tags verwendet. Z.B. so:
<div class="messagebox">Hallo, Welt!</div>
Beispiele zu ( )
- Als mathematische Blöcke
Wie in der Schule gelernt, kann man die runden Klammern oft benutzen, um zu bestimmen, welche Zahlen zuerst zusammengerechnet werden sollen.
Beispiel:
(5 * 6) + (1 / 2) = 30 + 0,5 = 30,5
5 * (6 + 1) / 2 = 5 * 7 / 2 = 17,5
- Um Argumente an Funktionen zu übergeben
In den meisten Programmiersprachen schreibt man den Funktionsnamen und dann in Klammern die Argumente, die der Funktion übergeben werden.
z.B. schreibe "Hallo, Welt!" (in Python)
print("Hallo, Welt!")
In den meisten Programmiersprachen müssen die Klammern auch geschrieben werden, wenn die Funktion keine Argumente annimmt
z.B. sortiere die Liste namens "numbers":
numbers.sort();
- Um eine explizite Konvertierung zu machen
Wenn Variablentypen nur verlustbehaftet ineinander konvertiert werden können, muss man bei den C-ähnlichen Programmiersprachen eine explizite Konvertierung machen. Z.B. wenn man von einer Fließkommazahl zu einer Ganzzahl konvertiert:
double floatingNumber = 2.1;
int intNumber = (int) floatingNumber;
Das gleiche gilt auch, wenn der Compiler nicht sicherstellen kann, dass ein Objekt den geforderten Typ hat.
- Für Tupel
Einige Programmiersprachen erlauben sogenannte Tupel. Das sind einfach mehrere Werte, die zusammen einer Variable zugewiesen werden können, oder z.B. zusammen als Rückgabewert benutzt werden können
bgColor = (34, 34, 35)
Beispiele zu [ ]
- Als Array-Index
Z.B. lege ein Integer-Array mit 10 Elementen an und speichere eine 100 an Position 3 (Achtung, in den meisten Sprachen sind Arrays 0-indiziert. Position 3 ist also das vierte Feld)
int[] meinArray = new int[10];
meinArray[3] = 100;
In VBA und manchen anderen Basic-Dialekten benutzt man für den gleichen Zweck aber runde Klammern
- Als Liste
In Javascript und Python (und sicher noch in anderen Sprachen) kann man mit den eckigen Klammern Listen initialisieren.
meineTestZahlen = [0, 8, 15, 47, 11]
- Als List-Comprehension
In Python kannst du in eckigen Klammern auch Funktionen benutzen, die die Listenelemente ändern oder filtern:
meineZahlen = [x/2 for x in meineTestZahlen if x%2==0]
- Für Namen mit Sonderzeichen
In MS SQL Server oder z.B. Excel kann man die eckigen Klammern für Namen mit Sonderzeichen benutzen (z.B. Tabellennamen mit Bindestrichen oder Spaltennamen mit Leerzeichen oder Pfadangaben zu anderen Excel-Dateien)
SELECT [Kunde Nachname] FROM [Neue-Kunden]
Beispiele zu { }
- Als Code-Block
Gerade in den C-ähnlichen Sprachen werden mit den geschweiften Klammern oft Code-Blöcke angefangen und beendet, damit der Compiler weiß, was z.B. alles zu einer Funktion oder zu einen if-Block oder einer Schleife gehört
public void Main()
{
Console.WriteLine("Hallo, Welt!");
}
- Zur Initialisierung von Arrays
Ähnlich wie bei den eckigen Klammern bei JavaScript und Python kann man mit den geschweiften Klammern bei Java oder C# Arrays initialisieren.
int[] meineTestZahlen = {0, 8, 15, 47, 11};
In Python kann man auf die Weise Sets erzeugen (also Listen, in denen jeder Wert nur einmal vorkommen darf) oder für Dictionaries, also Listen mit Key-Value Paaren
tel = {
'jack': 4098,
'sape': 4139,
'guido': 4127
}
- Für Matrizen in Excel
Wenn man in Excel einer Funktion mehrere Werte übergeben will, kann man das mit geschweiften Klammern machen
={1.2.3;4.5.6;7.8.9}
Es gibt auch die CSE-Funktionen, die früher bei Matrixberechnungen nötig waren. Dafür drückt man Strg+Shift+Enter und dann werden um die Funktion herum geschweifte Klammern gemacht, damit man sieht, dass es eine Matrix-Funktion ist. Das ist bei den neueren Excel-Versionen aber fast nie nötig, weil die automatisch Matrix-Funktionen erkennen und Ergebnisse in mehreren Zellen ausgeben können
Weitere Anmerkungen
Für jede Klammersorte gibt es bestimmt noch jede Menge andere Anwendungen. Es gibt sogar esoterische Programmiersprachen, die komplett nur mit diesen Klammern funktionieren (siehe Brain-Flak). Wenn du also für eine spezifische Sprache was wissen willst, müsstest du nochmal fragen.
Alle diese Klammern kommen in C++ vor, die meisten davon auch in C und Java.
C++ im Detail findest Du hier: https://en.cppreference.com/w/cpp
<> : klammert TemplateParameter und includes
#include <stdio.h> // inkludiert die Datei "stdio.h" aus den Bibliotheken des Compilers
std::vector<int> vec; // vec wird deklariert als ein dynamisches Array von int´s, nicht in C
() : wird für FunktionsParameterlisten verwendet
void test(int i){ ... any code ...} // definition
test(13); // Aufruf
[] : klammert Indices bei Arrays
{} : klammert Unterabschnitte im Code. Häufig (aber nicht immer) kann man auch einfach ein einzelnes (ungeklammertes) Statement verwenden.
...
if(a<b) {
// tue dies
} else {
// tue jenes
}
Da gibt es keine einheitliche Definition. Unter bestimmten Betriebssystemen oder in unterschiedlichen Programmiersprachen erfüllen sie unterschiedliche Funktionen.
Häufiger werden <> als Vergleichsoperatoren benutzt, [] um die Größe von Arrays zu definieren oder um einen Eintrag im Array zu adressieren, {} um Funktions- oder Methodenkörper zu umschließen und () um beim Funktionsaufruf Übergabeparameter zu umschließen oder bei Abfragen Bedingungen zu verknüpfen.
{}
//
*/
/*
werden auch für Kommentare verwendet