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

AS

ClassicUO • Basic

AS fixe la conversion d’une variable scalaire. Les valeurs internes sont Integer, Decimal, String, Array, Object et Unit (absence de valeur). Boolean utilise Integer 1/0. Les alias de ce dialecte Basic ne garantissent pas les tailles de stockage de VB.NET.

Syntaxe exacte

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

Paramètres

  • name — Nom déclaré. Sa lecture donne la valeur courante ; chaque nouvelle affectation applique de nouveau AS.
  • type — Integer, Long, Short, Byte : entier signé 32 bits, de -2147483648 à 2147483647 ; Short et Byte ne restreignent pas cette plage. Double, Single, Decimal : flottant binaire 64 bits, nommé Decimal en interne, sans arithmétique décimale exacte. String : texte. Boolean, Bool : Integer 1/0. Variant, Object : conservent le genre fourni sans exiger une instance d’objet. Noms insensibles à la casse.
  • value — Valeur initiale facultative : nombre, texte, variable ou résultat de fonction. AS appartient à la déclaration ; CInt(value), CDbl(value), CStr(value), CBool(value) sont des expressions de conversion explicites.

Retour

AS ne renvoie rien. Lire la variable renvoie son genre et sa valeur stockés. Les résultats logiques utilisent TRUE=1 et FALSE=0. Le nombre 2 est non nul, mais 2=TRUE est faux ; testez la présence d’objets avec count<>0 ou CBool(count).

Comportement

  • Sans initialisation, VAR typé donne 0 pour les entiers/Boolean, un zéro flottant pour Double/Single/Decimal et du texte vide pour String. VAR sans type et VAR AS Variant/Object donnent Unit. DIM scalaire insère du texte vide pour String, sinon 0. Unit reste Unit lors d’une affectation AS.
  • AS Integer tronque vers zéro les fractions dans la plage admise. CInt/CLng arrondissent, avec les moitiés en s’éloignant de zéro : 2.6 donne 3, contre 2 pour AS Integer. Le texte entier doit être intégralement décimal entier ou hexadécimal 0x ; "2.6" est refusé. Vérifiez la plage avant conversion.
  • AS Boolean compare la valeur originale au zéro numérique : nombre non nul → 1, zéro → 0. Il ne lit pas les mots : même le texte "false" donne 1. CBool effectue d’abord une conversion numérique. Utilisez nombres/valeurs logiques ou comparez explicitement le texte au mot attendu.
  • AS String utilise la représentation textuelle du moteur. AS Double/Single/Decimal lit le texte avec un point décimal. AS numérique transforme Array en 0, mais rejette Object et le texte numérique invalide par une erreur traitable avec TRY/CATCH. CInt/CLng/CDbl/CSng/CBool sont permissifs : texte non reconnu, Array, Object ou Unit deviennent d’abord 0. Vérifiez IsNumeric(value) avant de compter sur une conversion de texte.
  • La déclaration évalue l’initialisation, applique AS et stocke résultat et type. Chaque affectation répète la conversion. Les flottants sont approximatifs, sans garantie de calcul monétaire décimal exact. VAR / DIM décrit les portées, CONST protège les liaisons.
  • As accepte aussi le nom d’une Structure déclarée. VAR et DIM de ce type sans initialiseur créent ses champs par défaut. Seul ce même type déclaré est compatible ; aucun passage automatique entre types de structures distincts. Structure / New décrit les copies imbriquées et les références.

Exemples

1. Conversion et arrondi

# source=2.6 est flottant. whole AS Integer stocke 2 ; CInt(source) donne 3 dans rounded. Main renvoie 2*10+3=23 pour vérifier les deux conversions.
Option Explicit On
SUB Main()
    VAR source = 2.6
    VAR whole AS Integer = source
    VAR rounded = CInt(source)
    RETURN whole * 10 + rounded
END SUB

Explication des paramètres et du déroulement:

source=2.6 est flottant. whole AS Integer stocke 2 ; CInt(source) donne 3 dans rounded. Main renvoie 2*10+3=23 pour vérifier les deux conversions.

2. Quantité et valeur logique

# count=2 est une quantité. hasItems AS Boolean devient 1. count=TRUE est faux car TRUE vaut exactement 1 ; count<>0 est vrai. Main renvoie hasItems=1 : des objets existent, sans affirmer qu’il y en a un seul.
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

Explication des paramètres et du déroulement:

count=2 est une quantité. hasItems AS Boolean devient 1. count=TRUE est faux car TRUE vaut exactement 1 ; count<>0 est vrai. Main renvoie hasItems=1 : des objets existent, sans affirmer qu’il y en a un seul.

3. Variant conserve le genre

# value AS Variant contient Integer 7, puis String "ore". text AS String est initialement vide. CStr(12) donne "12" ; joindre les textes produit "ore12", renvoyé par Main. Variant permet ce changement de genre.
Option Explicit On
SUB Main()
    VAR value AS Variant = 7
    value = "ore"
    VAR text AS String
    text = value + CStr(12)
    RETURN text
END SUB

Explication des paramètres et du déroulement:

value AS Variant contient Integer 7, puis String "ore". text AS String est initialement vide. CStr(12) donne "12" ; joindre les textes produit "ore12", renvoyé par Main. Variant permet ce changement de genre.


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

Basic