CoffeeScript - Gamme
Nel capitolo precedente, abbiamo visto Arrays in CoffeeScript, durante la programmazione affronteremo alcuni scenari in cui dobbiamo memorizzare una sequenza di valori numerici in un array come mostrato di seguito.
numbers =[1,2,3,4,5,6,7,8,9,10]
CoffeeScript fornisce un modo più breve per esprimere gli array contenenti una sequenza di valori numerici, nota come ranges. Questa funzionalità di CoffeeScript è ispirata a Ruby.
Sintassi
Gli intervalli sono creati da due valori numerici, la prima e l'ultima posizione nell'intervallo, separati da .. o .... Con due punti (1..4), l'intervallo è inclusivo (1, 2, 3, 4); con tre punti (1 ... 4), l'intervallo esclude la fine (1, 2, 3).
Di seguito è riportata la sintassi degli intervalli in CoffeeScript. Definiremo i valori in un intervallo tra parentesi quadre[ ]proprio come gli array. Negli intervalli, mentre si memorizza una sequenza di valori numerici, invece di fornire i valori dell'intera sequenza, possiamo semplicemente specificarnebegin e end valori separati da due punti (..) come mostrato di seguito.
range =[Begin..End]
Esempio
Ecco un esempio di intervalli in CoffeeScript. Salvalo in un file con nomeranges_example.coffee.
numbers =[0..9]
console.log "The contents of the range are: "+ numbers
Apri il command prompt e compila il file .coffee come mostrato di seguito.
c:\> coffee -c ranges_example.coffee
Durante la compilazione, ti dà il seguente JavaScript. Qui puoi osservare che l'intervallo viene convertito in un array CoffeeScript completo.
// Generated by CoffeeScript 1.10.0
(function() {
var numbers;
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log("The contents of the range are:: " + numbers);
}).call(this);
Ora apri il file command prompt di nuovo ed eseguire il file CoffeeScript come mostrato di seguito.
c:\> coffee ranges_example.coffee
All'esecuzione, il file CoffeeScript produce il seguente output.
The contents of the range are:: 0,1,2,3,4,5,6,7,8,9
Escluso il valore finale
Gli intervalli vengono compilati in array completi contenenti tutti i numeri. Se vogliamo escludere il fileend valore, quindi dobbiamo separare il start e end elementi della gamma utilizzando tre punti (...) come mostrato di seguito.
range =[Begin...End]
Esempio
Possiamo riscrivere l'esempio sopra escludendo il file endvalore come mostrato di seguito. Salva i seguenti contenuti in un file con nomerange_excluding_end.coffee
numbers =[0...9]
console.log "The contents of the range are:: "+ numbers
Apri il command prompt e compila il file .coffee come mostrato di seguito.
c:\> coffee -c ranges_example.coffee
Durante la compilazione, ti dà il seguente JavaScript.
// Generated by CoffeeScript 1.10.0
(function() {
var numbers;
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8];
console.log("The contents of the range are:: " + numbers);
}).call(this);
Ora apri il file command prompt di nuovo ed eseguire il file CoffeeScript come mostrato di seguito.
c:\> coffee ranges_example.coffee
All'esecuzione, il file CoffeeScript produce il seguente output. Qui puoi osservare che il valore finale9 è escluso.
The contents of the range are:: 0,1,2,3,4,5,6,7,8
Utilizzo di intervalli con variabili
Possiamo anche definire un intervallo assegnando i valori di inizio e fine alle variabili.
Esempio
Considera il seguente esempio. Qui abbiamo definito un intervallo utilizzando le variabili. Salva questo codice in un file con nomerange_variables.coffee
start=0
end=9
numbers =[start..end]
console.log "The contents of the range are: "+ numbers
Apri il command prompt e compila il file .coffee come mostrato di seguito.
c:\> coffee -c range_variables.coffee
Durante la compilazione, ti dà il seguente JavaScript.
// Generated by CoffeeScript 1.10.0
(function() {
var end, i, numbers, results, start;
start = 0;
end = 9;
numbers = (function() {
results = [];
for (var i = start; start <= end ? i <= end : i >= end; start <= end ? i++ : i--) {
results.push(i);
}
return results;
}).apply(this);
console.log("The contents of the range are:: " + numbers);
}).call(this);
Ora apri il file command prompt di nuovo ed eseguire il file CoffeeScript come mostrato di seguito.
c:\> coffee range_variables.coffee
All'esecuzione, il file CoffeeScript produce il seguente output. Qui puoi osservare che il valore finale9 è escluso.
The contents of the range are:: 0,1,2,3,4,5,6,7,8,9
Intervalli con array
Possiamo suddividere gli array usandoli con intervalli. Ogni volta che specifichiamo intervalli immediatamente dopo array (variabili), il compilatore CoffeeScript lo converte in un fileslice() chiamata al metodo di JavaScript.
Supponiamo di avere un array con valori numerici, diciamo da 0 a 9, quindi possiamo recuperarne i primi 4 elementi come mostrato di seguito.
num = [1, 2, 3, 4, 5, 6, 7, 8, 9]
data = num[0..5]
I valori negativi rappresentano gli elementi dalla fine, ad esempio, -1 indica 9. Se specifichiamo un numero negativo 3 seguito da due punti, verranno estratti gli ultimi tre elementi della matrice.
data = num[-3..]
Se specifichiamo solo due punti nell'intervallo di un array come num[..], quindi verrà estratto l'array completo. Possiamo anche sostituire un segmento di array con altri elementi utilizzando gli intervalli come mostrato di seguito.
num[2..6] = [13,14,15,16,17]
Esempio
L'esempio seguente mostra l'uso di intervalli con gli array. Salva questo codice in un file con nomerange_arrays.coffee
#slicing an array using ranges
num = [1, 2, 3, 4, 5, 6, 7, 8, 9]
data = num[0..5]
console.log "The first four elements of the array : "+data
#Using negative values
data = num[-3..]
console.log "The last 3 elements of the array : "+data
#Extracting the whole array
console.log "Total elements of the array : "+num[..]
#Replacing the elements of an array
num[2..6] = [13,14,15,16,17]
console.log "New array : "+num
Apri il command prompt e compila il file .coffee come mostrato di seguito.
c:\> coffee -c range_arrays.coffee
Durante la compilazione, ti dà il seguente JavaScript. Qui puoi osservare che tutti gli intervalli vengono convertiti nelle chiamate al metodo slice () di JavaScript.
// Generated by CoffeeScript 1.10.0
(function() {
var data, num, ref;
num = [1, 2, 3, 4, 5, 6, 7, 8, 9];
data = num.slice(0, 6);
console.log("The first four elements of the array : " + data);
data = num.slice(-3);
console.log("The last 3 elements of the array : " + data);
console.log("Total elements of the array : " + num.slice(0));
[].splice.apply(num, [2, 5].concat(ref = [13, 14, 15, 16, 17])), ref;
console.log("New array : " + num);
}).call(this);
Ora apri il file command prompt di nuovo ed eseguire il file CoffeeScript come mostrato di seguito.
c:\> coffee range_arrays.coffee
All'esecuzione, il file CoffeeScript produce il seguente output. Qui puoi osservare che il valore finale9 è escluso.
The first four elements of the array : 1,2,3,4,5,6
The last 3 elements of the array : 7,8,9
Total elements of the array : 1,2,3,4,5,6,7,8,9
New array : 1,2,13,14,15,16,17,8,9
Intervalli con archi
Possiamo anche usare intervalli con stringhe. Se specifichiamo intervalli dopo le stringhe, CoffeeScript li divide e restituisce un nuovo sottoinsieme di caratteri.
Esempio
L'esempio seguente mostra l'uso di intervalli con stringhe. Qui abbiamo creato una stringa e ne abbiamo estratta una sottostringa utilizzando intervalli. Salva questo codice in un file con nomeranges_with_strings.coffee
my_string = "Welcome to tutorialspoint"
new_string = my_string[0..10]
console.log new_string
Apri il command prompt e compila il file .coffee come mostrato di seguito.
c:\> coffee -c ranges_with_strings.coffee
Durante la compilazione, ti dà il seguente JavaScript.
// Generated by CoffeeScript 1.10.0
(function() {
var my_string, new_string;
my_string = "Welcome to tutorialspoint";
new_string = my_string.slice(0, 6);
console.log(new_string);
}).call(this);
Ora apri il file command prompt di nuovo ed eseguire il file CoffeeScript come mostrato di seguito.
c:\> coffee ranges_with_strings.coffee
All'esecuzione, il file CoffeeScript produce il seguente output. Qui puoi osservare che il valore finale9 è escluso.
Welcome to
Comprensioni su intervalli
Come oggetti e array, possiamo anche iterare gli elementi di un intervallo usando le comprensioni.
Esempio
Di seguito è riportato un esempio di utilizzo delle comprensioni su intervalli. Qui abbiamo creato un intervallo e recuperato gli elementi in esso utilizzando le comprensioni. Salva questo codice in un file con il nomecomprehensions_over_ranges.coffee
numbers =[0..9]
console.log "The elements of the range are: "
console.log num for num in numbers
Apri il command prompt e compila il file .coffee come mostrato di seguito.
c:\> coffee -c comprehensions_over_ranges.coffee
Durante la compilazione, ti dà il seguente JavaScript.
// Generated by CoffeeScript 1.10.0
(function() {
var i, len, num, numbers;
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log("The elements of the range are: ");
for (i = 0, len = numbers.length; i < len; i++) {
num = numbers[i];
console.log(num);
}
}).call(this);
Ora apri il file command prompt di nuovo ed eseguire il file CoffeeScript come mostrato di seguito.
c:\> coffee comprehensions_over_ranges.coffee
All'esecuzione, il file CoffeeScript produce il seguente output. Qui puoi osservare che il valore finale9 è escluso.
The elements of the range are:
0
1
2
3
4
5
6
7
8
Allo stesso modo possiamo anche modificare questo incremento utilizzando la parola chiave by di comprensione.
array = (num for num in [1..10] by 2)
console.log array