- Tạo ứng dụng Spring Boot bằng Spring Launchizr
- Cấu hình Cassandra trong Spring Boot
- Định cấu hình nhóm kết nối Tomcat trên Spring Boot
- Định tuyến tin nhắn Camel đến Artemis được nhúng bằng WildFly
Trong hướng dẫn này, bạn sẽ tìm hiểu về trình tạo JavaScript thông qua các ví dụ. Trong JavaScript, trình tạo cung cấp một cách làm việc mới với các hàm và trình vòng lặp.
Sử dụng máy phát điện,
Để tạo một trình tạo, trước tiên bạn cần xác định hàm tạo bằng cách sử dụng ký hiệu hàm*. Đối tượng của hàm tạo được gọi là trình tạo.
// định nghĩa một hàm tạo function* Generator_function() { ... .. ... } // tạo một hàm tạo const Generator_obj = Generator_function();
Lưu ý: Các hàm tạo được biểu thị bằng *. Bạn có thể tạo nó bằng cách sử dụng function* GeneratorFunc() {…} hoặc function *generatorFunc(){…}.
Như đã đề cập ở trên, bạn có thể tạm dừng việc thực thi hàm tạo mà không thực thi toàn bộ thân hàm. Đối với điều này, chúng tôi sử dụng từ khóa năng suất. Ví dụ,
// hàm tạo function* GeneratorFunc() { console.log("1. code trước năng suất đầu tiên"); console.log("2. code trước năng suất thứ hai"); đối tượng trình tạo const Generator = GeneratorFunc(); console.log(generator.next());
đầu ra
1. mã trước sản lượng đầu tiên {value: 100, done: false}
đây,
LƯU Ý: Bạn cần gán đối tượng trình tạo cho một biến trước khi sử dụng nó.
Biểu thức lợi suất trả về một giá trị. Tuy nhiên, không giống như câu lệnh return, nó không kết thúc chương trình. Đó là lý do tại sao bạn có thể tiếp tục thực thi mã từ vị trí lợi nhuận cuối cùng. Ví dụ,
function* GeneratorFunc() { console.log("1. code trước năng suất đầu tiên"); mang lại 100; console.log("2. code trước năng suất thứ hai" console.log("3. code sau năng suất thứ hai"); } const Generator = GeneratorFunc(); console.log(generator.next()); console.log(generator.next()); console.log(generator.next());
đầu ra
1. mã trước sản lượng đầu tiên {value: 100, done: false} 2. mã trước sản lượng thứ hai {value: 200, done: false} 3. mã sau sản lượng thứ hai {value: unknown, done: true}
Đây là cách chương trình hoạt động.
Bạn cũng có thể truyền tham số cho hàm tạo. Ví dụ,
// hàm tạo function* GeneratorFunc() { // trả về 'hello' lúc đầu next() let x = sinh ra 'hello'; // trả về đối số đã truyền ở next() console.log(x); ('some code'); // trả về 5 ở giây tiếp theo() mang lại 5; } const Generator = GeneratorFunc(); console.log(generator.next());
đầu ra
{value: "hello", done: false} 6 một số mã {value: 5, done: false} {value: không xác định, xong: true}
Trong quy trình trên,
{giá trị: "xin chào", xong: sai}
6 một số mã {giá trị: 5, xong: sai}
{giá trị: không xác định, hoàn thành: đúng}
Trình tạo cung cấp một cách đơn giản hơn để triển khai các trình vòng lặp.
Nếu bạn muốn triển khai một trình vòng lặp theo cách thủ công, bạn phải sử dụng phương thức next() để tạo một trình vòng lặp và lưu trạng thái. Ví dụ,
// tạo đối tượng có thể lặp const iterableObj = { // phương thức iterator [Symbol.iterator]() { let step = 0; return { next() { step++; , xong: false}; } else if (step === 2) { return { value: '2', done: false} } else if (step === 3) { return { value: '3', xong : false}; } trả về { value: '', done: true }; } } } } cho (const i của iterableObj) { console.log(i);
đầu ra
1 2 3
Vì các trình tạo có thể lặp lại nên bạn có thể triển khai các trình vòng lặp theo cách đơn giản hơn. Sau đó, bạn có thể sử dụng vòng lặp for…of để lặp qua trình tạo. Ví dụ,
// hàm tạo hàm * GeneratorFunc() { suất 1; suất 3; } const obj = GeneratorFunc(); // lặp qua trình tạo for (let value of obj) { console.log(value);
phương pháp | mô tả |
---|---|
Kế tiếp() | Trả về giá trị lợi nhuận |
trở lại() | Trả về một giá trị và kết thúc trình tạo |
ném() | Ném một lỗi và chấm dứt máy phát điện |
trả lại từ khóa | từ khóa năng suất |
---|---|
Trả về một giá trị và kết thúc hàm. | Trả về một giá trị và tạm dừng hàm mà không kết thúc nó. |
Có sẵn cho các chức năng bình thường và chức năng máy phát điện. | Chỉ có sẵn trong các chức năng của máy phát điện. |
Bạn có thể sử dụng câu lệnh return trong các hàm tạo. Câu lệnh return trả về một giá trị và kết thúc hàm (tương tự như hàm thông thường). Ví dụ,
// hàm tạo function* GeneratorFunc() { return 100; console.log("2. một số mã trước năng suất thứ hai"); (generator.next()); console.log(generator.next()); console.log(generator.next());
đầu ra
{value: 100, xong: false} {value: 123, xong: true} {value: không xác định, xong: true}
Trong chương trình trên, khi gặp câu lệnh return, nó sẽ trả về giá trị, thuộc tính done trở thành true và hàm kết thúc. Do đó, phương thức next() sau câu lệnh return không trả về kết quả nào.
Lưu ý: Bạn cũng có thể sử dụng phương thức return() thay vì câu lệnh return trong đoạn mã trên, tương tự như Generator.return(123);
Bạn có thể đưa ra lỗi một cách rõ ràng trên hàm tạo bằng cách sử dụng phương thức Throw(). Việc sử dụng phương thức Throw() sẽ gây ra lỗi và kết thúc hàm. Ví dụ,
// hàm tạo function* GeneratorFunc() { Năng suất 100; Năng suất 200; } // trả về đối tượng trình tạo const Generator = GeneratorFunc(); console.log(generator.next()); console.log(generator.throw(Lỗi mới('Đã xảy ra lỗi.'))); console.log(generator.next());
đầu ra
{value: 1, done: false} Lỗi: Đã xảy ra lỗi.
Trình tạo đã được giới thiệu trong ES6. Một số trình duyệt có thể không hỗ trợ sử dụng trình tạo. Để tìm hiểu thêm, hãy truy cập Hỗ trợ trình tạo JavaScript.
Hướng dẫn trước :Trình lặp và các trình lặp Hướng dẫn tiếp theo :JS Regex
[1] Parewa Labs Pvt. Ltd. (2022, ngày 1 tháng 1). Bắt đầu với JavaScript, từ Parewa Labs Pvt Ltd.
Tôi đang sử dụng đoạn mã sau với một trình tạo lồng nhau để lặp lại các tài liệu văn bản và sử dụng get_train_minibatch() để trả về các ví dụ đào tạo. Tôi muốn bảo toàn (dưa chua) trình tạo để tôi có thể quay lại vị trí tương tự trong tài liệu văn bản. Tuy nhiên, bạn không thể chọn
Trong hướng dẫn này, bạn sẽ tìm hiểu về trình tạo JavaScript thông qua các ví dụ. Trong JavaScript, trình tạo cung cấp một cách làm việc mới với các hàm và trình vòng lặp. Bằng cách sử dụng trình tạo, bạn có thể dừng thực thi một hàm từ bất kỳ đâu bên trong hàm và bắt đầu
LESS rất tuyệt vời. Tôi đang tự hỏi liệu có trình tạo html nào tốt có thể giúp tôi viết biểu mẫu hoặc làm những việc khác dễ dàng hơn không. Có cái gì tương tự ngoài html không? Câu trả lời hay nhất Bạn đã thử Haml chưa? từ mạng của nó
Lời nói đầu Nếu bạn đang làm việc bằng Python hoặc các ngôn ngữ khác, bạn nên làm quen với các trình tạo. Nhưng nhiều nhà phát triển PHP có thể không biết chức năng của trình tạo. Có thể là do trình tạo là một hàm được giới thiệu trong PHP 5.5.0, hoặc có thể chức năng của trình tạo không rõ ràng lắm.
Tôi đang cố gắng viết một hàm tạo danh sách ngày giờ bằng cú pháp trình tạo: let dateRange = let endDate = System.DateTime.Parse("6/1/2010")
Tôi đã xem qua một số mã trông giống như: [func(val) for val in iterable] Có một iterable (trong trường hợp của tôi là một trình tạo) và người dùng muốn gọi một hàm trên mỗi giá trị cho các tác dụng phụ của nó ( Ví dụ: func có thể hãy công bằng
Delphi có tích hợp sẵn thứ gì đó để tạo UUID không? Hướng dẫn chương trình trả lời hay nhất; {$APPTYPE CONSOLE} sử dụng SysUtils;
Tôi đang tìm hiểu về trình tạo javascript nhưng tôi thực sự bối rối. Tôi đang sử dụng node@0.11.x để chạy ví dụ này: function find() { process.nextTick(functi
Có ai biết một số hướng dẫn hay về cách tạo trình tạo ID tùy chỉnh cho chế độ ngủ đông không? Câu trả lời hay nhất Một tìm kiếm ngắn gọn trên Google về "hướng dẫn tạo id tùy chỉnh ngủ đông" đã tiết lộ các khả năng sau. Tôi đã loại trừ những người đang tìm kiếm
Tôi đang theo dõi các slide của chuyên gia Python David Beazley. Nó cho biết "Các trình tạo cũng được sử dụng để chạy đồng thời. Đây là một ví dụ: từ các bộ sưu tập nhập deque def countdown(
Tôi có một trình tạo sự kiện và tôi muốn làm phong phú nó bằng siêu dữ liệu bổ sung có thể lấy được từ API. Một số sự kiện có ID đối tượng được liên kết với chúng và các sự kiện khác có hàm băm của đối tượng chứ không phải cả hai. Tôi không thể lấy id đối tượng dựa trên hàm băm, tôi chỉ có thể làm được
Giả sử tôi có một lớp tùy chỉnh: public class CustomClass { Private String name;
Tôi đang nghĩ đến việc triển khai một hàm để "xây dựng" mệnh đề WHERE trong một yêu cầu SQL như thế này: "SELECT * FROM table $where" Build $where bằng cách sử dụng một vòng lặp như thế này: $arr=array(
Tôi đang tìm một hàm tiêu chuẩn thực hiện điều này: def Forever(v): while True: Yiel v Điều này có vẻ tầm thường đến mức tôi không thể tin rằng không có phiên bản tiêu chuẩn. Về vấn đề đó, có ai biết con trỏ tới tất cả các hàm tạo tiêu chuẩn không
Tôi biết có một số câu hỏi liên quan rất giống nhau trên trang này, nhưng sau khi xem chương trình, tôi tin rằng câu hỏi này rất độc đáo theo đúng nghĩa của nó. Nếu ai đó có thể tìm thấy và cung cấp bằng chứng cho thấy câu hỏi của tôi hoàn toàn bị lừa đảo, tôi sẽ tự rút lại câu hỏi đó (vì vậy vui lòng không đánh giá thấp câu hỏi này!). Tôi là Jav
void __fastcall TForm1::Button1Click(TObject *Sender) { int size = MemoEnter->GetTextLen() + 1;
Như hiện tại, câu hỏi này không phù hợp với định dạng Hỏi & Đáp của chúng tôi. Chúng tôi mong đợi câu trả lời sẽ được hỗ trợ bởi các sự kiện, trích dẫn hoặc chuyên môn, nhưng câu hỏi có thể gây ra tranh luận, tranh luận, bỏ phiếu hoặc thảo luận mở rộng. Nếu bạn cảm thấy vấn đề này có thể được cải thiện và có thể mở lại, hãy truy cập
Tôi đang cố gắng quyết định giữa hai định nghĩa sau đây về trình tạo của mình. Cái nào tốt hơn? Cái nào "nhiều Pythonic" hơn? Dù sao, có cách nào để giảm thiểu những nhược điểm của mỗi? def myGenerator1(howMany): kết quả
Tôi có một trình tạo Python lexg tạo danh sách trên mỗi lần lặp. Mã dường như hoạt động theo nghĩa vòng lặp for truyền thống, tức là for i in lexg(2,2): print(i) tạo ra: [2, 0] [
Tôi hy vọng điều này không vượt quá khả năng của trình tạo Python, nhưng tôi muốn xây dựng một trình tạo để mỗi khi hàm được gọi, nó sẽ trả về phút tiếp theo cho đến hết thời gian kết thúc. Vì vậy, hàm đọc thời gian bắt đầu và thời gian kết thúc rồi trả về thời gian tính bằng phút cho đến khi tất cả thời gian ở giữa được bao phủ.
Tôi là một lập trình viên xuất sắc, rất giỏi!