Array mit Bools

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • hey zusammen, lang ist es her.


    Ich habe ein Array mit 15 Namen, dazu möchte ich das jedem String ein Bool also True oder False als zusätzliches Attribut zugeschustert wird, sodass ich jeden einzelnen der 15 Strings nach True oder False abfragen kann, wie kann ich das integrieren bei zB folgendem Array?


    new VPNames[X][] =

    {

    "Ronald",

    "Donald",

    "Gonald",

    }


    Oder kann ich einfach irgendwie


    new VPNames[3][2] =

    {

    "Ronald", 1},

    "Donald", 1},

    "Gonald", 0},

    }


    Nutzen?


    Lg

    2 Mal editiert, zuletzt von samboki ()

    • Hilfreich

    Oder kann ich einfach irgendwie

    Ja, fast, kannst es so machen:


    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Ja, fast, kannst es so machen:


    Hey besten Dank, meine Idee hätte so oder ähnlich also nicht funktioniert? Und danke für die Kommentare dahinter :)

  • In Pawn, kannst du nicht einfach unterschiedliche Typen in ein Array quetschen :)


    Da die Sprache C-Ähnlich ist, unterliegt sie einer strengen Typisierung.

    Mehr Infos dazu: https://de.wikipedia.org/wiki/Typisierung_(Informatik)


    Im Gegensatz zu z.B. Javascript/Python, wo das Problemlos möglich wäre, muss hier angegeben werden, um was für einen Typ es sich handelt. Also String (Array) oder int, bool, float o.ä.


    Sonst kann der Compiler das nicht verarbeiten.


    Also das "enum" sorgt in diesem Fall dafür, dass der Compiler weiß, welche Typen im Array sind und es hat den netten Nebeneffekt, dass du die Variablen im Array gleich benennen kannst und es so übersichtlicher auch für dich wird :)


    Alternativ könntest du auch mehrere Arrays erstellen:


    C
    new VPNames[][] =
    {
        "Ronald",
        "Donald",
        "Gonald"
    };
    
    new VPBools[sizeof(VPNames)] = {true, true, false};

    Das sizeof(VPNames) gibt in diesem Fall vor, dass das Array, genauso groß sein muss, wie VPNames.

    Aber es ist denke ich schöner alles in einem zu haben und auch direkt mit einem Namen ansprechen zu können.

    Hier hätte man mehrere Stellen, die immer zu berücksichtigen sind, das kann schnell unübersichtlich werden.


    Falls es sich hier übrigens um Konstanten handelt, also ein Array, wo der Wert zur Laufzeit nicht mehr geändert wird, dann kannst du anstatt

    new

    stock const verwenden.


    stock sagt aus (egal ob vor globalen Variablen oder Funktionen), dass wenn die Variable (oder die Funktion) nicht im Code benutzt wird, der Compiler es ignorieren kann und so wird kein Speicher reserviert in der .amx Datei.


    Das const sorgt dafür, dass die Nutzung optimiert wird und du nicht (evtl. ausversehen) irgendwelche Werte mehr darin nachträglich ändern kannst.

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S