C # Left Shift Operator

Es gibt eine Aussage, die ein Kollege von mir geschrieben hat und die ich nicht ganz verstehe. Leider ist er momentan nicht verfügbar, daher hier (mit geänderten Namen arbeiten wir an einem Spiel in Unity).

private readonly int FRUIT_LAYERS =
          (1 << LayerMask.NameToLayer("Apple"))
        | (1 << LayerMask.NameToLayer("Banana"));

NameToLayer nimmt eine Zeichenfolge und gibt eine Ganzzahl zurück. Ich habe immer Linksschiebeoperatoren gesehen, die mit der konstanten Ganzzahl auf der rechten Seite verwendet wurden, nicht mit der linken, und alle Beispiele, die ich über Google finde, folgen diesem Ansatz. In diesem Fall schiebt er Apple und Banana auf dieselbe relative Ebene (die ich später zum Filtern verwenden werde). In Zukunft gäbe es mehr "Früchte", nach denen man filtern könnte. Gibt es brillante Stackoverflowers, die mir erklären können, was in diesen Zeilen vor sich geht?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage