CoffeeScript - Dải
Trong chương trước, chúng ta đã thấy Mảng trong CoffeeScript, trong khi lập trình chúng ta sẽ gặp một số tình huống mà chúng ta phải lưu trữ một chuỗi các giá trị số trong một mảng như hình dưới đây.
numbers =[1,2,3,4,5,6,7,8,9,10]
CoffeeScript cung cấp một cách ngắn hơn để diễn đạt các mảng chứa một chuỗi các giá trị số, được gọi là ranges. Tính năng này của CoffeeScript được lấy cảm hứng từ Ruby.
Cú pháp
Phạm vi được tạo bởi hai giá trị số, vị trí đầu tiên và cuối cùng trong phạm vi, cách nhau bởi .. hoặc .... Với hai dấu chấm (1..4), phạm vi là bao gồm (1, 2, 3, 4); với ba dấu chấm (1 ... 4), phạm vi không bao gồm phần cuối (1, 2, 3).
Dưới đây là cú pháp của phạm vi trong CoffeeScript. Chúng tôi sẽ xác định các giá trị trong một phạm vi giữa các dấu ngoặc vuông[ ]giống như mảng. Trong các phạm vi, trong khi lưu trữ một chuỗi các giá trị số, thay vì cung cấp các giá trị của cả chuỗi, chúng ta có thể chỉ địnhbegin và end các giá trị được phân tách bằng hai dấu chấm (..) như hình bên dưới.
range =[Begin..End]
Thí dụ
Đây là một ví dụ về phạm vi trong CoffeeScript. Lưu nó trong một tệp có tênranges_example.coffee.
numbers =[0..9]
console.log "The contents of the range are: "+ numbers
Mở command prompt và biên dịch tệp .coffee như hình dưới đây.
c:\> coffee -c ranges_example.coffee
Khi biên dịch, nó cung cấp cho bạn JavaScript sau. Ở đây bạn có thể thấy rằng phạm vi được chuyển đổi thành mảng CoffeeScript hoàn chỉnh.
// 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);
Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.
c:\> coffee ranges_example.coffee
Khi thực thi, tệp CoffeeScript tạo ra kết quả sau.
The contents of the range are:: 0,1,2,3,4,5,6,7,8,9
Không bao gồm giá trị cuối cùng
Các phạm vi được biên dịch thành các mảng hoàn chỉnh chứa tất cả các số. Nếu chúng ta muốn loại trừend giá trị, sau đó chúng ta phải tách start và end các phần tử của phạm vi sử dụng dấu ba chấm (...) như hình bên dưới.
range =[Begin...End]
Thí dụ
Chúng ta có thể viết lại ví dụ trên bằng cách loại trừ endgiá trị như hình bên dưới. Lưu các nội dung sau vào một tệp có tênrange_excluding_end.coffee
numbers =[0...9]
console.log "The contents of the range are:: "+ numbers
Mở command prompt và biên dịch tệp .coffee như hình dưới đây.
c:\> coffee -c ranges_example.coffee
Khi biên dịch, nó cung cấp cho bạn JavaScript sau.
// 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);
Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.
c:\> coffee ranges_example.coffee
Khi thực thi, tệp CoffeeScript tạo ra kết quả sau. Tại đây, bạn có thể thấy rằng giá trị cuối cùng9 bị loại trừ.
The contents of the range are:: 0,1,2,3,4,5,6,7,8
Sử dụng phạm vi với các biến
Chúng ta cũng có thể xác định một phạm vi bằng cách gán giá trị bắt đầu và kết thúc cho các biến.
Thí dụ
Hãy xem xét ví dụ sau. Ở đây chúng tôi đã xác định một phạm vi bằng cách sử dụng các biến. Lưu mã này trong một tệp có tênrange_variables.coffee
start=0
end=9
numbers =[start..end]
console.log "The contents of the range are: "+ numbers
Mở command prompt và biên dịch tệp .coffee như hình dưới đây.
c:\> coffee -c range_variables.coffee
Khi biên dịch, nó cung cấp cho bạn JavaScript sau.
// 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);
Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.
c:\> coffee range_variables.coffee
Khi thực thi, tệp CoffeeScript tạo ra kết quả sau. Tại đây, bạn có thể thấy rằng giá trị cuối cùng9 bị loại trừ.
The contents of the range are:: 0,1,2,3,4,5,6,7,8,9
Dải có Mảng
Chúng ta có thể cắt các mảng bằng cách sử dụng chúng với các phạm vi. Bất cứ khi nào chúng tôi chỉ định phạm vi ngay sau mảng (biến), thì trình biên dịch CoffeeScript sẽ chuyển đổi nó thànhslice() cuộc gọi phương thức của JavaScript.
Giả sử rằng chúng ta có một mảng có các giá trị số, chẳng hạn như từ 0 đến 9, sau đó chúng ta có thể truy xuất 4 phần tử đầu tiên của nó như hình dưới đây.
num = [1, 2, 3, 4, 5, 6, 7, 8, 9]
data = num[0..5]
Giá trị âm đại diện cho các phần tử từ cuối, ví dụ, -1 cho biết 9. Nếu chúng ta chỉ định số âm 3 theo sau là hai dấu chấm, ba phần tử cuối cùng của mảng sẽ được trích xuất.
data = num[-3..]
Nếu chúng ta chỉ xác định hai dấu chấm trong phạm vi của một mảng là num[..], sau đó mảng hoàn chỉnh sẽ được trích xuất. Chúng ta cũng có thể thay thế một phân đoạn mảng bằng các phần tử khác bằng cách sử dụng các phạm vi như hình dưới đây.
num[2..6] = [13,14,15,16,17]
Thí dụ
Ví dụ sau minh họa việc sử dụng phạm vi với mảng. Lưu mã này trong một tệp có tênrange_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
Mở command prompt và biên dịch tệp .coffee như hình dưới đây.
c:\> coffee -c range_arrays.coffee
Khi biên dịch, nó cung cấp cho bạn JavaScript sau. Ở đây, bạn có thể quan sát rằng tất cả các phạm vi được chuyển đổi thành các lệnh gọi phương thức slice () của 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);
Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.
c:\> coffee range_arrays.coffee
Khi thực thi, tệp CoffeeScript tạo ra kết quả sau. Tại đây, bạn có thể thấy rằng giá trị cuối cùng9 bị loại trừ.
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
Dải có chuỗi
Chúng tôi cũng có thể sử dụng phạm vi với Chuỗi. Nếu chúng ta chỉ định các phạm vi sau Chuỗi, thì CoffeeScript sẽ cắt chúng và trả về một tập con ký tự mới.
Thí dụ
Ví dụ sau minh họa việc sử dụng phạm vi với Chuỗi. Ở đây chúng tôi đã tạo một chuỗi và trích xuất một chuỗi con từ nó bằng cách sử dụng các phạm vi. Lưu mã này trong một tệp có tênranges_with_strings.coffee
my_string = "Welcome to tutorialspoint"
new_string = my_string[0..10]
console.log new_string
Mở command prompt và biên dịch tệp .coffee như hình dưới đây.
c:\> coffee -c ranges_with_strings.coffee
Khi biên dịch, nó cung cấp cho bạn JavaScript sau.
// 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);
Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.
c:\> coffee ranges_with_strings.coffee
Khi thực thi, tệp CoffeeScript tạo ra kết quả sau. Tại đây, bạn có thể thấy rằng giá trị cuối cùng9 bị loại trừ.
Welcome to
Toàn diện về Dãy
Với tư cách là các đối tượng và mảng, chúng ta cũng có thể lặp lại các phần tử của một phạm vi bằng cách sử dụng các hàm hiểu.
Thí dụ
Sau đây là một ví dụ về việc sử dụng sự hiểu biết trên các phạm vi. Ở đây, chúng tôi đã tạo một phạm vi và truy xuất các phần tử trong đó bằng cách sử dụng các cách hiểu. Lưu mã này trong một tệp có têncomprehensions_over_ranges.coffee
numbers =[0..9]
console.log "The elements of the range are: "
console.log num for num in numbers
Mở command prompt và biên dịch tệp .coffee như hình dưới đây.
c:\> coffee -c comprehensions_over_ranges.coffee
Khi biên dịch, nó cung cấp cho bạn JavaScript sau.
// 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);
Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.
c:\> coffee comprehensions_over_ranges.coffee
Khi thực thi, tệp CoffeeScript tạo ra kết quả sau. Tại đây, bạn có thể thấy rằng giá trị cuối cùng9 bị loại trừ.
The elements of the range are:
0
1
2
3
4
5
6
7
8
Theo cách tương tự, Chúng tôi cũng có thể thay đổi gia số này bằng cách sử dụng từ khóa theo từ khóa hiểu.
array = (num for num in [1..10] by 2)
console.log array