API Basic Types it - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

AS

ClassicUO • Basic

AS stabilisce la conversione di una variabile scalare. I tipi interni sono Integer, Decimal, String, Array, Object e Unit (nessun valore). Boolean usa Integer 1/0. Gli alias di questo Basic non garantiscono le dimensioni dei tipi VB.NET.

Sintassi esatta

VAR name AS type [= value]
DIM name AS type [= value]

Parametri

  • name — Nome dichiarato. Leggerlo restituisce il valore corrente; ogni nuova assegnazione applica nuovamente AS.
  • type — Integer, Long, Short, Byte: intero con segno a 32 bit, -2147483648…2147483647; Short e Byte non restringono il limite. Double, Single, Decimal: virgola mobile binaria a 64 bit, chiamata Decimal internamente, non aritmetica decimale esatta. String: testo. Boolean, Bool: Integer 1/0. Variant, Object: mantengono il tipo fornito senza richiedere un’istanza oggetto. Maiuscole e minuscole equivalenti.
  • value — Valore iniziale facoltativo: numero, testo, variabile o risultato di funzione. AS appartiene alla dichiarazione; CInt(value), CDbl(value), CStr(value), CBool(value) eseguono conversioni esplicite nelle espressioni.

Restituisce

AS non restituisce valori. Leggere la variabile restituisce tipo e valore memorizzati. I risultati logici usano TRUE=1 e FALSE=0. Il conteggio 2 è diverso da zero, ma 2=TRUE è falso; verificare la presenza con count<>0 o CBool(count).

Comportamento

  • Senza inizializzatore, VAR tipizzato dà 0 per interi/Boolean, zero mobile per Double/Single/Decimal, testo vuoto per String. VAR senza tipo e VAR AS Variant/Object danno Unit. DIM scalare inserisce testo vuoto per String, altrimenti 0. Unit rimane Unit nell’assegnazione AS.
  • AS Integer tronca verso zero le frazioni entro l’intervallo ammesso. CInt/CLng arrotondano, con le metà lontano da zero: 2.6 dà 3, mentre AS Integer memorizza 2. Il testo intero deve essere interamente decimale intero o esadecimale 0x; "2.6" non è ammesso. Controllare i limiti prima della conversione.
  • AS Boolean confronta il valore originale con zero numerico: numero non nullo → 1, zero → 0. Non interpreta parole: anche "false" come testo dà 1. CBool converte prima in numero. Usare numeri/valori logici oppure confrontare esplicitamente il testo con la parola desiderata.
  • AS String usa la rappresentazione testuale del motore. AS Double/Single/Decimal legge numeri con punto decimale. AS numerico converte Array in 0 ma rifiuta Object e testo numerico non valido con un errore gestibile da TRY/CATCH. CInt/CLng/CDbl/CSng/CBool sono permissivi: testo non riconosciuto, Array, Object o Unit diventano prima 0. Verificare IsNumeric(value) prima di fare affidamento sulla conversione del testo.
  • La dichiarazione valuta l’inizializzatore, applica AS e conserva risultato e nome del tipo. Le assegnazioni ripetono la conversione. I valori mobili sono approssimati, senza garanzia di contabilità decimale esatta. VAR / DIM spiega gli ambiti, CONST protegge le associazioni.
  • As accetta anche il nome di una Structure dichiarata. VAR e DIM di questo tipo senza inizializzatore creano i campi predefiniti. È compatibile solo lo stesso tipo dichiarato; tipi di struttura diversi non vengono convertiti. Structure / New descrive copie annidate e riferimenti.

Esempi

1. Conversione e arrotondamento

# source=2.6 è mobile. whole AS Integer memorizza 2; CInt(source) dà 3 in rounded. Main restituisce 2*10+3=23 per verificare entrambe le conversioni.
Option Explicit On
SUB Main()
    VAR source = 2.6
    VAR whole AS Integer = source
    VAR rounded = CInt(source)
    RETURN whole * 10 + rounded
END SUB

Spiegazione dei parametri e dell’esecuzione:

source=2.6 è mobile. whole AS Integer memorizza 2; CInt(source) dà 3 in rounded. Main restituisce 2*10+3=23 per verificare entrambe le conversioni.

2. Conteggio e valore logico

# count=2 è un conteggio. hasItems AS Boolean diventa 1. count=TRUE è falso poiché TRUE vale precisamente 1; count<>0 è vero. Main restituisce hasItems=1: esistono oggetti, senza affermare che siano uno.
Option Explicit On
SUB Main()
    VAR count = 2
    VAR hasItems AS Boolean = count
    IF count = TRUE THEN
        RETURN -1
    END IF
    IF count <> 0 THEN
        RETURN hasItems
    END IF
    RETURN FALSE
END SUB

Spiegazione dei parametri e dell’esecuzione:

count=2 è un conteggio. hasItems AS Boolean diventa 1. count=TRUE è falso poiché TRUE vale precisamente 1; count<>0 è vero. Main restituisce hasItems=1: esistono oggetti, senza affermare che siano uno.

3. Variant mantiene il tipo del valore

# value AS Variant contiene Integer 7 e poi String "ore". text AS String parte vuoto. CStr(12) produce "12"; unire i testi dà "ore12", restituito da Main. Variant consente il cambio di tipo.
Option Explicit On
SUB Main()
    VAR value AS Variant = 7
    value = "ore"
    VAR text AS String
    text = value + CStr(12)
    RETURN text
END SUB

Spiegazione dei parametri e dell’esecuzione:

value AS Variant contiene Integer 7 e poi String "ore". text AS String parte vuoto. CStr(12) produce "12"; unire i testi dà "ore12", restituito da Main. Variant consente il cambio di tipo.


en · ru · uk · fr · de · it · es · zh-tw · ja · ko

Basic