{{htmlmetatags>metatag-robots=() metatag-title=(local task variable operator | ugBASIC User Manual) metatag-keywords=(ugBASIC,Commodore 64,Commodore PLUS/4,ZX Spectrum) metatag-description=(Pagina del manuale per local task variable operator) metatag-media-og:image=(:ugbasic:logo-ugbasic-fb.png) metatag-og:title=(local task variable operator | ugBASIC User Manual) metatag-og:description=(Pagina del manuale per local task variable operator) }} ====== ugBASIC Manuale Utente ====== ===== local task variable operator ✓ ===== ===== SINTASSI ===== = [variable] [variable] = expression = [variable$] [variable$] = expression ==== SCOPO ==== Per garantire l'utilizzo di variabili locali all'interno di procedure parallele, essendo la procedura priva di uno stack, è necessario predisporre un array per contenere questo tipo di informazione. Utilizzando, quindi, l'operatore di accesso agli array, è quindi possibile accedere alle singole variabili, utilizzando come indice l'identificativo del task. ugBASIC fornisce una forma compatta per indicare questo tipo di accesso. Invece di scrivere ''v(THREAD)'' si può scrivere ''[v]''. Questo operatore, chiamato "local task variable operator", può essere utilizzato dovunque, e in qualsiasi espressione, e può essere utilizzato come destinazione della variabile. Nell'accesso all'array, come in qualsiasi altra variabile, può essere giustapposto il simbolo del dollaro (''$''), per indicare che si vuole accedere a una variabile di tipo stringa. In tal caso, un ulteriore controllo di tipo sarà svolto in sede di compilazione, per evitare di far riferimento a una variabile di tipo numerico. ==== ESEMPIO ==== PUT IMAGE token AT [x],[y] [x] = [x] + 1 PRINT [word$] [word$] = "ok!" Si vedano anche i seguenti file di esempio: * ''[[https://github.com/spotlessmind1975/ugbasic/tree/main/examples/multitasking_example_06.bas|multitasking_example_06.bas]]'' ==== DISPONIBILE SU ==== * Atari (400/800) * Atari XL/XE * Commodore 128 (MOS 8502) * Commodore 128 (Zilog Z80) * Commodore 64 * Commodore 64+REU * TRS-80 Color Computer * TRS-80 Color Computer 3 * ColecoVision * Amstrad CPC 664 * Dragon 32 * Dragon 64 * Thomson MO5 * Thomson MO5 * Olivetti Prodest PC128 * Commodore PLUS/4 * SEGA SC-3000 * SEGA SG-1000 * VG-5000 * Commodore VIC-20 * ZX Spectrum 48 ==== PROBLEMI? ==== Se si riscontra un problema nell'utilizzare questo comando, se si ritiene che vi sia un bug oppure che la spiegazione sia poco chiara, è possibile [[https://github.com/spotlessmind1975/ugbasic/issues/new?title=SEGNALAZIONE SU local task variable operator|aprire una segnalazione]] per questa parola chiave su GitHub. Grazie!===== POWERED BY ===== [[:it:ugbasic:user:index|{{ :ugbasic:user:logo-ugbasic.png?nolink&600 |}}]]