Skip to content

API GetArrayLength it

Codex edited this page Oct 4, 2026 · 1 revision

GetArrayLength

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

API · Basic

ClassicUO • Runtime API

Conta le celle dirette di un Array per cicli limitati e accesso sicuro agli indici.

Sintassi esatta

GetArrayLength(arg:Any) -> Any

Parametri

  • arg — Qualsiasi valore BASIC. Array restituisce la Length esterna; String, numero, Object e Unit restituiscono 0.

Restituisce

Integer >= 0. Array vuoto e altro tipo danno 0: il risultato non verifica il tipo. Conteggio, non Boolean o ultimo indice.

Comportamento

  • Query locale: nessun server, spostamento o modifica dell’array. Gli esempi usano dati prestabiliti, non l’inventario corrente.
  • Controlla il tipo e legge Array.Length senza scansione o somma. DIM values(2) crea tre celle 0..2, anche se non inizializzate.
  • Non conta gli elementi annidati. Per String usare Len, per List/Dictionary il loro Count. UO.GetArrayLength è il nome compatibile della stessa query locale.

Funzioni interne: dalla chiamata al risultato

Controlla il tipo e legge Array.Length senza scansione o somma. DIM values(2) crea tre celle 0..2, anche se non inizializzate.

1. GetArrayLength

Controlla il tipo e legge Array.Length senza scansione o somma. DIM values(2) crea tre celle 0..2, anche se non inizializzate.

Integer >= 0. Array vuoto e altro tipo danno 0: il risultato non verifica il tipo. Conteggio, non Boolean o ultimo indice.

Sorgente del progetto: external/InjectionScript/src/InjectionScript/Runtime/InternalSubrutines.cs; funzione GetArrayLength.

Non conta gli elementi annidati. Per String usare Len, per List/Dictionary il loro Count. UO.GetArrayLength è il nome compatibile della stessa query locale.

Esempi

Sommare quantità

# Sommare quantità
#
# Conta le celle dirette di un Array per cicli limitati e accesso sicuro agli indici.
#
# Integer >= 0. Array vuoto e altro tipo danno 0: il risultato non verifica il tipo. Conteggio,
# non Boolean o ultimo indice.

SUB Main()
    # Il ciclo visita le tre celle 0..2 e restituisce 150. La somma è del ciclo, non di
    # GetArrayLength.
    # Query locale: nessun server, spostamento o modifica dell’array. Gli esempi usano dati
    # prestabiliti, non l’inventario corrente.

    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

Spiegazione dei parametri e dell’esecuzione:

  • Il ciclo visita le tre celle 0..2 e restituisce 150. La somma è del ciclo, non di GetArrayLength.
  • Query locale: nessun server, spostamento o modifica dell’array. Gli esempi usano dati prestabiliti, non l’inventario corrente.

Punti e coordinate separati

# Punti e coordinate separati
#
# Conta le celle dirette di un Array per cicli limitati e accesso sicuro agli indici.
#
# Integer >= 0. Array vuoto e altro tipo danno 0: il risultato non verifica il tipo. Conteggio,
# non Boolean o ultimo indice.

SUB Main()
    # Due punti con tre campi ciascuno: risultato 2|3, non sei. Il personaggio non si muove.
    # Query locale: nessun server, spostamento o modifica dell’array. Gli esempi usano dati
    # prestabiliti, non l’inventario corrente.

    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

Spiegazione dei parametri e dell’esecuzione:

  • Due punti con tre campi ciascuno: risultato 2|3, non sei. Il personaggio non si muove.
  • Query locale: nessun server, spostamento o modifica dell’array. Gli esempi usano dati prestabiliti, non l’inventario corrente.

Proteggere il primo indice

# Proteggere il primo indice
#
# Conta le celle dirette di un Array per cicli limitati e accesso sicuro agli indici.
#
# Integer >= 0. Array vuoto e altro tipo danno 0: il risultato non verifica il tipo. Conteggio,
# non Boolean o ultimo indice.

SUB Main()
    # String dà 0: restituisce no route prima dell’indice. Il controllo gestisce anche un Array
    # vuoto ma non distingue i due casi.
    # Query locale: nessun server, spostamento o modifica dell’array. Gli esempi usano dati
    # prestabiliti, non l’inventario corrente.

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

Spiegazione dei parametri e dell’esecuzione:

  • String dà 0: restituisce no route prima dell’indice. Il controllo gestisce anche un Array vuoto ma non distingue i due casi.
  • Query locale: nessun server, spostamento o modifica dell’array. Gli esempi usano dati prestabiliti, non l’inventario corrente.

Clone this wiki locally