CoffeeScript - Toàn diện
Trong chương trước, chúng ta đã tìm hiểu các vòng lặp khác nhau do CoffeeScript cung cấp, whilevà các biến thể của nó. Ngoài những điều đó, CoffeeScript cung cấp các cấu trúc vòng lặp bổ sung được gọi làcomprehensions.
Những hiểu biết này thay thế fortrong các ngôn ngữ lập trình khác, nếu chúng ta thêm các mệnh đề bảo vệ tùy chọn và giá trị của chỉ mục mảng hiện tại một cách rõ ràng. Sử dụng các phép hiểu, chúng ta có thể lặp lại các mảng cũng như các đối tượng và các phép hiểu mà lặp lại các mảng là các biểu thức và chúng ta có thể trả về chúng trong một hàm hoặc gán cho một biến.
Không. | Tuyên bố & Mô tả |
---|---|
1 | cho..in hiểu Các for..in hiểu là hình thức hiểu cơ bản trong CoffeeScript bằng cách sử dụng nó, chúng ta có thể lặp lại các phần tử của một danh sách hoặc mảng. |
2 | cho..của sự hiểu biết Cũng giống như Mảng, CoffeeScriptScript cung cấp một vùng chứa để lưu trữ các cặp khóa-giá trị được gọi là các đối tượng. Chúng ta có thể lặp lại các đối tượng bằng cách sử dụngfor..of sự hiểu biết do CoffeeScript cung cấp. |
3 | list comprehensions Các list sự hiểu biết trong CoffeeScript được sử dụng để ánh xạ một mảng đối tượng sang một mảng khác. |
Chỉ số hiểu
Danh sách / mảng các phần tử có một chỉ mục có thể được sử dụng trong phần hiểu. Bạn có thể sử dụng nó trong phần hiểu bằng cách sử dụng một biến như hình dưới đây.
for student,i in [element1, element2, element3]
Thí dụ
Ví dụ sau minh họa việc sử dụng chỉ mục của for…inhiểu trong CoffeeScript. Lưu mã này trong một tệp có tênfor_in_index.coffee
for student,i in ['Ram', 'Mohammed', 'John']
console.log "The name of the student with id "+i+" is: "+student
Mở command prompt và biên dịch tệp .coffee như hình dưới đây.
c:\> coffee -c for_in_index.coffee
Khi biên dịch, nó cung cấp cho bạn JavaScript sau.
// Generated by CoffeeScript 1.10.0
(function() {
var i, j, len, ref, student;
ref = ['Ram', 'Mohammed', 'John'];
for (i = j = 0, len = ref.length; j < len; i = ++j) {
student = ref[i];
console.log("The name of the student with id " + i + " is: " + student);
}
}).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 for_in_index.coffee
Khi thực thi, tệp CoffeeScript tạo ra kết quả sau.
The name of the student with id 0 is: Ram
The name of the student with id 1 is: Mohammed
The name of the student with id 2 is: John
Postfix dạng hiểu
Cũng giống như postfix if và unless, CoffeeScript cung cấp dạng postfix của Phần hiểu biết hữu ích trong khi viết mã. Sử dụng cái này, chúng ta có thể viếtfor..in hiểu trong một dòng như hình dưới đây.
#Postfix for..in comprehension
console.log student for student in ['Ram', 'Mohammed', 'John']
#postfix for..of comprehension
console.log key+"::"+value for key,value of { name: "Mohammed", age: 24, phone: 9848022338}
hiển thị ví dụ
Gán cho một biến
Sự hiểu chúng ta sử dụng để lặp lại mảng có thể được gán cho một biến và cũng được trả về bởi một hàm.
Thí dụ
Hãy xem xét ví dụ dưới đây. Ở đây bạn có thể thấy rằng chúng tôi đã truy xuất các phần tử của một mảng bằng cách sử dụngfor..in hiểu và gán điều này cho một biến có tên names. Và chúng tôi cũng có một hàm trả về một cách rõ ràng bằng cách sử dụngreturntừ khóa. Lưu mã này trong một tệp có tênexample.coffee
my_function =->
student = ['Ram', 'Mohammed', 'John']
#Assigning comprehension to a variable
names = (x for x in student )
console.log "The contents of the variable names are ::"+names
#Returning the comprehension
return x for x in student
console.log "The value returned by the function is "+my_function()
Mở command prompt và biên dịch tệp .coffee như hình dưới đây.
c:\> coffee -c example.coffee
Khi biên dịch, nó cung cấp cho bạn JavaScript sau.
// Generated by CoffeeScript 1.10.0
(function() {
var my_function;
my_function = function() {
var i, len, names, student, x;
student = ['Ram', 'Mohammed', 'John'];
names = (function() {
var i, len, results;
results = [];
for (i = 0, len = student.length; i < len; i++) {
x = student[i];
results.push(x);
}
return results;
})();
console.log("The contents of the variable names are ::" + names);
for (i = 0, len = student.length; i < len; i++) {
x = student[i];
return x;
}
};
console.log("The value returned by the function is " + my_function());
}).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 example.coffee
Khi thực thi, tệp CoffeeScript tạo ra kết quả sau.
The contents of the variable names are ::Ram,Mohammed,John
The value returned by the function is Ram
Theo từ khóa
CoffeeScript cung cấp các phạm vi để xác định danh sách các phần tử. Ví dụ: phạm vi [1..10] tương đương với [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] trong đó, mọi phần tử đều được tăng thêm 1. Chúng tôi cũng có thể thay đổi mức tăng này sử dụngby từ khóa hiểu.
Thí dụ
Ví dụ sau minh họa việc sử dụng by từ khóa của for..inhiểu được cung cấp bởi CoffeeScript. Lưu mã này trong một tệp có tênby_keyword_example.coffee
array = (num for num in [1..10] by 2)
console.log array
Mở command prompt và biên dịch tệp .coffee như hình dưới đây.
c:\> coffee -c by_keyword_example.coffee
Khi biên dịch, nó cung cấp cho bạn JavaScript sau.
// Generated by CoffeeScript 1.10.0
(function() {
var array, num;
array = (function() {
var i, results;
results = [];
for (num = i = 1; i <= 10; num = i += 2) {
results.push(num);
}
return results;
})();
console.log(array);
}).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 by_keyword_example.coffee
Khi thực thi, tệp CoffeeScript tạo ra kết quả sau.
[ 1, 3, 5, 7, 9 ]