Skip to content

API GetArrayLength de

Codex edited this page Oct 4, 2026 · 1 revision

GetArrayLength

Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

API · Basic

ClassicUO • Runtime API

Zählt direkte Array-Plätze für begrenzte Schleifen und sichere Indexzugriffe.

Genaue Syntax

GetArrayLength(arg:Any) -> Any

Parameter

  • arg — Beliebiger BASIC-Wert. Array liefert die äußere Length; String, Zahl, Object und Unit liefern 0.

Rückgabewert

Integer >= 0. Leeres Array und andere Wertarten ergeben beide 0; kein Typnachweis. Anzahl statt Boolean oder letztem Index.

Verhalten

  • Lokale Abfrage ohne Serverzugriff, Gegenstandsbewegung oder Änderung des Arrays. Die Beispiele verwenden feste Beispieldaten, kein aktuelles Inventar.
  • Prüft die Wertart und liest Array.Length ohne Durchlauf oder Summe. DIM values(2) erzeugt drei Plätze 0..2 einschließlich unbelegter.
  • Keine rekursive Zählung. Für String Len verwenden, für List/Dictionary deren Count. UO.GetArrayLength ist der kompatible Name derselben lokalen Abfrage.

Interne Funktionen: vom Aufruf zum Ergebnis

Prüft die Wertart und liest Array.Length ohne Durchlauf oder Summe. DIM values(2) erzeugt drei Plätze 0..2 einschließlich unbelegter.

1. GetArrayLength

Prüft die Wertart und liest Array.Length ohne Durchlauf oder Summe. DIM values(2) erzeugt drei Plätze 0..2 einschließlich unbelegter.

Integer >= 0. Leeres Array und andere Wertarten ergeben beide 0; kein Typnachweis. Anzahl statt Boolean oder letztem Index.

Projektquelle: external/InjectionScript/src/InjectionScript/Runtime/InternalSubrutines.cs; Funktion GetArrayLength.

Keine rekursive Zählung. Für String Len verwenden, für List/Dictionary deren Count. UO.GetArrayLength ist der kompatible Name derselben lokalen Abfrage.

Beispiele

Mengen addieren

# Mengen addieren
#
# Zählt direkte Array-Plätze für begrenzte Schleifen und sichere Indexzugriffe.
#
# Integer >= 0. Leeres Array und andere Wertarten ergeben beide 0; kein Typnachweis. Anzahl
# statt Boolean oder letztem Index.

SUB Main()
    # Drei Einträge werden über 0..2 besucht; die Schleife liefert 150. GetArrayLength selbst
    # summiert keine Mengen.
    # Lokale Abfrage ohne Serverzugriff, Gegenstandsbewegung oder Änderung des Arrays. Die Beispiele
    # verwenden feste Beispieldaten, kein aktuelles Inventar.

    Dim amounts(2)
    amounts[0] = 50
    amounts[1] = 75
    amounts[2] = 25
    Dim total = 0
    For index = 0 To GetArrayLength(amounts) - 1
        total += amounts[index]
    Next
    Return total
END SUB

Erläuterung der Parameter und Ausführung:

  • Drei Einträge werden über 0..2 besucht; die Schleife liefert 150. GetArrayLength selbst summiert keine Mengen.
  • Lokale Abfrage ohne Serverzugriff, Gegenstandsbewegung oder Änderung des Arrays. Die Beispiele verwenden feste Beispieldaten, kein aktuelles Inventar.

Punkte und Koordinaten getrennt zählen

# Punkte und Koordinaten getrennt zählen
#
# Zählt direkte Array-Plätze für begrenzte Schleifen und sichere Indexzugriffe.
#
# Integer >= 0. Leeres Array und andere Wertarten ergeben beide 0; kein Typnachweis. Anzahl
# statt Boolean oder letztem Index.

SUB Main()
    # Zwei Punkte mit jeweils drei Feldern: Ergebnis 2|3 statt sechs. Keine Bewegung des Charakters.
    # Lokale Abfrage ohne Serverzugriff, Gegenstandsbewegung oder Änderung des Arrays. Die Beispiele
    # verwenden feste Beispieldaten, kein aktuelles Inventar.

    Dim first(2)
    first[0] = 100
    first[1] = 200
    first[2] = 0
    Dim second(2)
    second[0] = 101
    second[1] = 200
    second[2] = 0
    Dim route(1)
    route[0] = first
    route[1] = second
    Return CStr(GetArrayLength(route)) & "|" & CStr(GetArrayLength(route[0]))
END SUB

Erläuterung der Parameter und Ausführung:

  • Zwei Punkte mit jeweils drei Feldern: Ergebnis 2|3 statt sechs. Keine Bewegung des Charakters.
  • Lokale Abfrage ohne Serverzugriff, Gegenstandsbewegung oder Änderung des Arrays. Die Beispiele verwenden feste Beispieldaten, kein aktuelles Inventar.

Ersten Index absichern

# Ersten Index absichern
#
# Zählt direkte Array-Plätze für begrenzte Schleifen und sichere Indexzugriffe.
#
# Integer >= 0. Leeres Array und andere Wertarten ergeben beide 0; kein Typnachweis. Anzahl
# statt Boolean oder letztem Index.

SUB Main()
    # String liefert 0: no route wird vor dem Indexzugriff zurückgegeben. Derselbe Schutz gilt für
    # ein leeres Array, unterscheidet beide Fälle jedoch nicht.
    # Lokale Abfrage ohne Serverzugriff, Gegenstandsbewegung oder Änderung des Arrays. Die Beispiele
    # verwenden feste Beispieldaten, kein aktuelles Inventar.

    Dim route = "not an array"
    If GetArrayLength(route) = 0 Then
        Return "no route"
    End If
    Return route[0]
END SUB

Erläuterung der Parameter und Ausführung:

  • String liefert 0: no route wird vor dem Indexzugriff zurückgegeben. Derselbe Schutz gilt für ein leeres Array, unterscheidet beide Fälle jedoch nicht.
  • Lokale Abfrage ohne Serverzugriff, Gegenstandsbewegung oder Änderung des Arrays. Die Beispiele verwenden feste Beispieldaten, kein aktuelles Inventar.

Clone this wiki locally