Condividi tramite


Dichiarazioni di matrice

Come con tutti gli altri dati JScript, le variabili possono memorizzare matrici. Mediante l'annotazione del tipo è possibile specificare che una variabile deve contenere un oggetto matrice o una matrice tipizzata, ma non è possibile fornire una matrice iniziale. Per memorizzarla in una variabile, è necessario dichiarare la matrice e assegnarla a tale variabile.

Mediante la dichiarazione di un oggetto Array di JScript si ottiene la creazione di un oggetto Array, mentre se si dichiara una matrice tipizzata viene riservata una sezione di memoria sufficientemente grande per consentire la memorizzazione di tutti gli elementi della matrice. Entrambi i tipi di matrice possono essere dichiarati utilizzando l'operatore new in modo che venga costruita in modo esplicito una nuova matrice oppure utilizzando un valore letterale di matrice.

Dichiarazioni di matrice mediante l'operatore new

Per dichiarare un nuovo oggetto Array di JScript è possibile utilizzare l'operatore new con il costruttore di Array. Dal momento che è possibile aggiungere in modo dinamico membri a una matrice JScript, non è necessario specificarne la dimensione iniziale. Nell'esempio che segue, ad a1 viene assegnata una matrice di lunghezza zero.

var a1 = new Array();

Per assegnare una lunghezza iniziale alla matrice creata mediante il costruttore di Array, passare a questo un Integer. Il valore della lunghezza della matrice deve essere zero o un numero positivo. Mediante il seguente codice viene assegnata una matrice di lunghezza 10 ad a2:

var a2 = new Array(10);

Se al costruttore Array viene passato più di un parametro o un solo parametro non numerico, i parametri della matrice risultante saranno espressi come elementi di matrice. Mediante il codice seguente, ad esempio, viene creata una matrice il cui elemento 0 è il numero 10, l'elemento 1 è la stringa "Hello" e l'elemento 2 è la data corrente:

var a3 = new Array(10, "Hello", Date());

Mediante l'operatore new è anche possibile dichiarare matrici tipizzate. Poiché le matrici tipizzate non accettano l'aggiunta dinamica di elementi, è necessario che nella dichiarazione sia specificata la dimensione della matrice. La sintassi utilizzata dal costruttore di matrici richiede che la dimensione della matrice sia racchiusa tra parentesi quadre. Mediante il codice seguente, ad esempio, viene dichiarata una matrice di cinque integer:

var i1 : int[] = new int[5];

Mediante l'operatore new è inoltre possibile dichiarare matrici multidimensionali. Nell'esempio che segue viene dichiarata una matrice di Integer con dimensioni 3, 4 e 5:

var i2 : int[,,] = new int[3,4,5];

Quando si dichiara una matrice di matrici, la matrice di base deve essere dichiarata prima delle sottomatrici. In questo modo la determinazione delle dimensioni delle sottomatrici risulta più flessibile. Nell'esempio seguente, la prima sottomatrice ha lunghezza 1, la seconda ha lunghezza 2 e così via:

// First, declare a typed array of type int[], and initialize it.
var i3 : int[][] = new (int[])[4];
// Second, initialize the subarrays.
for(var i=0; i<4; i++)
   i3[i] = new int[i+1];

Dichiarazioni di matrice mediante valori letterali di matrice

Un metodo alternativo per effettuare simultaneamente la dichiarazione e l'inizializzazione di matrici consiste nell'utilizzo di valori letterali di matrice. Un valore letterale di matrice indica un oggetto Array di JScript. Tuttavia, poiché le matrici JScript interagiscono con le matrici tipizzate, i valori letterali possono essere utilizzati anche per inizializzare matrici tipizzate. Per ulteriori informazioni, vedere Dati Array.

Mediante i valori letterali di matrice possono essere facilmente inizializzate le matrici unidimensionali. Il compilatore tenterà di convertire i dati dal valore letterale di matrice nel tipo corretto quando assegnato a una matrice tipizzata. In questo esempio viene assegnato un valore letterale di matrice a una matrice JScript e a una matrice tipizzata:

var al1 : Array = [1,2,"3"];
var il1 : int[] = [1,2,"3"];

I valori letterali di matrice possono anche inizializzare matrici di matrici. Nell'esempio seguente una matrice di due matrici di Integer inizializza sia la matrice JScript che la matrice tipizzata:

var al1 : Array = [[1,2,3],[4,5,6]];
var il1 : int[][] = [[1,2,3],[4,5,6]];

I valori letterali di matrice non possono inizializzare matrici tipizzate multidimensionali.

Vedere anche

Riferimenti

Operatore new

Concetti

Dati Array

Oggetto Array di JScript

Altre risorse

Matrici JScript