Giải nén python tuple lồng nhau
Cú pháp gán phá hủy là một biểu thức JavaScript cho phép giải nén các giá trị từ mảng hoặc thuộc tính từ các đối tượng thành các biến riêng biệt Show
Các biểu thức đối tượng và mảng cung cấp một cách dễ dàng để tạo các gói dữ liệu đặc biệt
Phép gán phá hủy sử dụng cú pháp tương tự, nhưng ở phía bên trái của phép gán để xác định giá trị nào cần giải nén từ biến nguồn
Tương tự, bạn có thể hủy cấu trúc các đối tượng ở phía bên trái của bài tập
Khả năng này tương tự như các tính năng có trong các ngôn ngữ như Perl và Python Đối với cả phá hủy đối tượng và mảng, có hai loại mẫu phá hủy. mẫu liên kết và mẫu gán, với các cú pháp hơi khác nhau Trong các mẫu liên kết, mẫu bắt đầu bằng từ khóa khai báo ( 4, 5 hoặc 6). Sau đó, mỗi thuộc tính riêng lẻ phải được liên kết với một biến hoặc bị hủy cấu trúc thêm
Tất cả các biến chia sẻ cùng một khai báo, vì vậy nếu bạn muốn một số biến có thể gán lại nhưng những biến khác ở dạng chỉ đọc, bạn có thể phải hủy cấu trúc hai lần — một lần với 5, một lần với 6 0Trong các mẫu gán, mẫu không bắt đầu bằng từ khóa. Mỗi thuộc tính bị hủy cấu trúc được gán cho một mục tiêu của phép gán — có thể được khai báo trước bằng 4 hoặc 5 hoặc là thuộc tính của một đối tượng khác — nói chung, bất kỳ thứ gì có thể xuất hiện ở phía bên trái của biểu thức gán 3Ghi chú. Dấu ngoặc đơn 01 xung quanh câu lệnh gán là bắt buộc khi sử dụng phép gán phá hủy theo nghĩa đen của đối tượng mà không cần khai báo 02 không phải là cú pháp độc lập hợp lệ, vì 03 ở phía bên trái được coi là một khối và không phải là một đối tượng theo nghĩa đen. Tuy nhiên, 04 là hợp lệ, cũng như 05Nếu kiểu viết mã của bạn không bao gồm dấu chấm phẩy ở cuối, thì biểu thức 01 cần phải được đặt trước dấu chấm phẩy hoặc biểu thức này có thể được sử dụng để thực thi một hàm trên dòng trước đóLưu ý rằng mẫu liên kết tương đương của mã ở trên không phải là cú pháp hợp lệ 0Mỗi thuộc tính bị hủy cấu trúc có thể có một giá trị mặc định. Giá trị mặc định được sử dụng khi thuộc tính không có hoặc có giá trị 07. Nó không được sử dụng nếu tài sản có giá trị 08 3Giá trị mặc định có thể là bất kỳ biểu thức nào. Nó sẽ chỉ được đánh giá khi cần thiết 4Bạn có thể kết thúc một mẫu phá hủy bằng thuộc tính còn lại 09. Mẫu này sẽ lưu trữ tất cả các thuộc tính còn lại của đối tượng hoặc mảng vào một đối tượng hoặc mảng mới 0Thuộc tính còn lại phải là thuộc tính cuối cùng trong mẫu và không được có dấu phẩy ở cuối 1Trong nhiều cú pháp mà ngôn ngữ liên kết một biến cho bạn, bạn cũng có thể sử dụng mẫu phá hủy. Bao gồm các
Để biết các tính năng dành riêng cho việc phá hủy mảng hoặc đối tượng, vui lòng tham khảo các ví dụ riêng lẻ bên dưới gán biến cơ bản 2Phá hủy với nhiều yếu tố hơn nguồnTrong một mảng phá hủy từ một mảng có độ dài N được chỉ định ở phía bên phải của phép gán, nếu số lượng biến được chỉ định ở phía bên trái của phép gán lớn hơn N, thì chỉ N biến đầu tiên được gán giá trị. Giá trị của các biến còn lại sẽ không được xác định 3Hoán đổi biếnHai giá trị biến có thể được hoán đổi trong một biểu thức phá hủy Không hủy phép gán, hoán đổi hai giá trị yêu cầu một biến tạm thời (hoặc, trong một số ngôn ngữ cấp thấp, thủ thuật hoán đổi XOR) 4Phân tích một mảng được trả về từ một hàmLuôn luôn có thể trả về một mảng từ một hàm. Việc hủy cấu trúc có thể giúp làm việc với một giá trị trả về mảng ngắn gọn hơn Trong ví dụ này, 33 trả về các giá trị 34 làm đầu ra của nó, giá trị này có thể được phân tích cú pháp trong một dòng bằng cách hủy 5Bỏ qua một số giá trị trả vềBạn có thể bỏ qua các giá trị trả về mà bạn không quan tâm 6Bạn cũng có thể bỏ qua tất cả các giá trị trả về 7Sử dụng một mẫu liên kết làm thuộc tính còn lạiThuộc tính còn lại của phép gán phá hủy mảng có thể là một mẫu liên kết mảng hoặc đối tượng khác. Điều này cho phép bạn giải nén đồng thời các thuộc tính và chỉ số của mảng 8 9Các mẫu liên kết này thậm chí có thể được lồng vào nhau, miễn là mỗi thuộc tính còn lại là thuộc tính cuối cùng trong danh sách 0Mặt khác, việc hủy đối tượng chỉ có thể có một mã định danh là thuộc tính còn lại 1Giải nén các giá trị từ đối sánh cụm từ thông dụngKhi phương thức 35 của biểu thức chính quy tìm thấy kết quả khớp, nó trả về một mảng trước tiên chứa toàn bộ phần được khớp của chuỗi và sau đó là các phần của chuỗi khớp với từng nhóm được đặt trong ngoặc đơn trong biểu thức chính quy. Destructuring assignment allows you to unpack the parts out of this array easily, ignoring the full match if it is not needed 2Sử dụng phá hủy mảng trên bất kỳ lần lặp nàoPhá hủy mảng gọi giao thức lặp lại của phía bên tay phải. Do đó, bất kỳ mảng nào có thể lặp lại, không nhất thiết phải là mảng, đều có thể bị hủy cấu trúc 3Không thể lặp lại không thể bị hủy cấu trúc dưới dạng mảng 4Iterables chỉ được lặp lại cho đến khi tất cả các ràng buộc được chỉ định 5Ràng buộc còn lại được đánh giá một cách háo hức và tạo ra một mảng mới, thay vì sử dụng lần lặp cũ 6nhiệm vụ cơ bản 7Gán tên biến mớiMột thuộc tính có thể được giải nén từ một đối tượng và được gán cho một biến có tên khác với thuộc tính của đối tượng 8Ví dụ, ở đây, 36 lấy từ đối tượng 37 thuộc tính có tên là 38 và gán nó cho một biến cục bộ có tên là 39Gán tên biến mới và cung cấp giá trị mặc địnhMột tài sản có thể là cả hai
9Giải nén các thuộc tính từ các đối tượng được truyền dưới dạng tham số chức năngCác đối tượng được truyền vào các tham số hàm cũng có thể được giải nén thành các biến, sau đó có thể được truy cập trong phần thân hàm. Đối với việc gán đối tượng, cú pháp phá hủy cho phép biến mới có cùng tên hoặc khác tên với thuộc tính ban đầu và gán giá trị mặc định cho trường hợp khi đối tượng ban đầu không xác định thuộc tính Hãy xem xét đối tượng này, chứa thông tin về người dùng 0Ở đây chúng tôi trình bày cách giải nén một thuộc tính của đối tượng được truyền vào một biến có cùng tên. Giá trị tham số 01 cho biết rằng thuộc tính 02 của đối tượng được truyền cho hàm phải được giải nén thành một biến có cùng tên, sau đó có thể được sử dụng trong hàm 1Bạn có thể xác định tên của biến giải nén. Ở đây chúng tôi giải nén thuộc tính có tên là 03 và đổi tên nó thành 04 để sử dụng trong thân hàm 2Các đối tượng lồng nhau cũng có thể được giải nén. Ví dụ dưới đây cho thấy thuộc tính 05 được giải nén thành một biến có tên là 06 3Đặt giá trị mặc định của tham số chức năngGiá trị mặc định có thể được chỉ định bằng cách sử dụng 07 và sẽ được sử dụng làm giá trị biến nếu thuộc tính được chỉ định không tồn tại trong đối tượng được truyềnDưới đây, chúng tôi hiển thị một hàm có kích thước mặc định là 08, tọa độ mặc định là 09 và bán kính mặc định là 25 4Trong chữ ký hàm cho 30 ở trên, phía bên trái bị hủy cấu trúc có giá trị mặc định là một đối tượng trống 31Bạn cũng có thể đã viết hàm mà không có mặc định đó. Tuy nhiên, nếu bạn bỏ qua giá trị mặc định đó, hàm sẽ tìm kiếm ít nhất một đối số được cung cấp khi được gọi, trong khi ở dạng hiện tại, bạn có thể gọi 32 mà không cần cung cấp bất kỳ tham số nào. Mặt khác, ít nhất bạn cần cung cấp một đối tượng trống theo nghĩa đenĐể biết thêm thông tin, xem Đối tượng lồng nhau và phá hủy mảng 5Đối với phép lặp và phá hủy 6Tên thuộc tính đối tượng được tính toán và phá hủyTên thuộc tính được tính toán, như on , có thể được sử dụng với tính năng hủy 7Mã định danh JavaScript không hợp lệ làm tên thuộc tínhCó thể sử dụng tính năng hủy cấu trúc với tên thuộc tính không phải là mã định danh JavaScript hợp lệ bằng cách cung cấp mã định danh thay thế hợp lệ 8Phá hủy đối tượng gần như tương đương với truy cập thuộc tính. Điều này có nghĩa là nếu bạn cố gắng hủy một giá trị nguyên thủy, giá trị đó sẽ được gói vào đối tượng trình bao tương ứng và thuộc tính được truy cập trên đối tượng trình bao 9Giống như truy cập các thuộc tính, phá hủy 08 hoặc 07 ném một 35 0Điều này xảy ra ngay cả khi mẫu trống 1Kết hợp mảng và phá hủy đối tượngPhá hủy mảng và đối tượng có thể được kết hợp. Giả sử bạn muốn phần tử thứ ba trong mảng 36 bên dưới, sau đó bạn muốn thuộc tính 06 trong đối tượng, bạn có thể thực hiện như sau 2Chuỗi nguyên mẫu được tra cứu khi đối tượng được giải cấu trúcKhi giải cấu trúc một đối tượng, nếu một thuộc tính không được truy cập vào chính nó, nó sẽ tiếp tục tìm kiếm dọc theo chuỗi nguyên mẫu |