Thoát-html github
Các chữ cái mẫu là các chữ cái được phân tách bằng các ký tự backtick ( 4), cho phép , với các biểu thức được nhúng và các cấu trúc đặc biệt được gọi là Show Chữ mẫu đôi khi được gọi một cách không chính thức là chuỗi mẫu, bởi vì chúng được sử dụng phổ biến nhất cho (để tạo chuỗi bằng cách thay thế các trình giữ chỗ). Tuy nhiên, một mẫu chữ được gắn thẻ có thể không dẫn đến một chuỗi;
5Văn bản chuỗi sẽ trở thành một phần của mẫu chữ. Hầu như tất cả các ký tự được cho phép theo nghĩa đen, bao gồm và khác. Tuy nhiên, các chuỗi thoát không hợp lệ sẽ gây ra lỗi cú pháp, trừ khi a được sử dụng 6Một biểu thức được chèn vào vị trí hiện tại, có giá trị được chuyển đổi thành một chuỗi hoặc được chuyển đến 7 7Nếu được chỉ định, nó sẽ được gọi với mảng chuỗi mẫu và biểu thức thay thế, và giá trị trả về trở thành giá trị của chữ mẫu. Nhìn thấy Văn bản mẫu được bao quanh bởi các ký tự backtick (_______0_______4) thay vì dấu ngoặc kép hoặc dấu ngoặc đơn Cùng với việc có các chuỗi bình thường, các mẫu chữ cũng có thể chứa các phần khác được gọi là trình giữ chỗ, là các biểu thức nhúng được phân tách bằng ký hiệu đô la và dấu ngoặc nhọn. 0. Các chuỗi và trình giữ chỗ được chuyển đến một hàm — hàm mặc định hoặc hàm bạn cung cấp. Hàm mặc định (khi bạn không cung cấp hàm của riêng mình) chỉ thực hiện để thay thế các trình giữ chỗ và sau đó nối các phần thành một chuỗiĐể cung cấp một chức năng của riêng bạn, hãy đặt trước mẫu chữ một tên chức năng; . Trong trường hợp đó, chữ mẫu được chuyển đến chức năng thẻ của bạn, sau đó bạn có thể thực hiện bất kỳ thao tác nào bạn muốn trên các phần khác nhau của chữ mẫu Để thoát dấu gạch ngược trong mẫu chữ, hãy đặt dấu gạch chéo ngược ( 1) trước dấu gạch ngược
Dấu hiệu đô la cũng có thể được thoát để ngăn nội suy
Bất kỳ ký tự dòng mới nào được chèn vào nguồn đều là một phần của mẫu chữ Sử dụng các chuỗi bình thường, bạn sẽ phải sử dụng cú pháp sau để có được các chuỗi nhiều dòng
Sử dụng chữ mẫu, bạn có thể làm tương tự với điều này
Nếu không có mẫu chữ, khi bạn muốn kết hợp đầu ra từ biểu thức với chuỗi, bạn sẽ sử dụng toán tử cộng 2
Điều đó có thể khó đọc – đặc biệt là khi bạn có nhiều biểu thức Với mẫu chữ, bạn có thể tránh toán tử nối — và cải thiện khả năng đọc mã của bạn — bằng cách sử dụng trình giữ chỗ có dạng 0 để thực hiện thay thế cho các biểu thức được nhúng
Lưu ý rằng có một sự khác biệt nhỏ giữa hai cú pháp. Mẫu chữ , trong khi phép cộng buộc toán hạng của nó thành nguyên hàm trước. Để biết thêm thông tin, hãy xem trang tham khảo cho toán tử 2Trong một số trường hợp nhất định, lồng mẫu là cách dễ nhất (và có lẽ dễ đọc hơn) để có các chuỗi có thể định cấu hình. Trong mẫu được phân cách bằng dấu gạch ngược, thật đơn giản để cho phép dấu gạch ngược bên trong bằng cách sử dụng chúng bên trong trình giữ chỗ 0 trong mẫuVí dụ: không có mẫu chữ, nếu bạn muốn trả về một giá trị nhất định dựa trên một điều kiện cụ thể, bạn có thể làm điều gì đó như sau
Với một mẫu chữ nhưng không lồng nhau, bạn có thể làm điều này
Với việc lồng các chữ mẫu, bạn có thể làm điều này
Một dạng văn bản mẫu nâng cao hơn là các mẫu được gắn thẻ Các thẻ cho phép bạn phân tích các chữ mẫu bằng một hàm. Đối số đầu tiên của hàm thẻ chứa một mảng các giá trị chuỗi. Các đối số còn lại có liên quan đến các biểu thức Sau đó, hàm thẻ có thể thực hiện bất kỳ thao tác nào trên các đối số này mà bạn muốn và trả về chuỗi đã thao tác. (Ngoài ra, nó có thể trả về một cái gì đó hoàn toàn khác, như được mô tả trong một trong các ví dụ sau. ) Tên của chức năng được sử dụng cho thẻ có thể là bất cứ điều gì bạn muốn 0Thẻ không nhất thiết phải là một mã định danh đơn giản. Bạn có thể sử dụng bất kỳ biểu thức nào lớn hơn 16, bao gồm quyền truy cập thuộc tính, lệnh gọi hàm, biểu thức mới hoặc thậm chí một ký tự mẫu được gắn thẻ khác 1Mặc dù cú pháp cho phép về mặt kỹ thuật, các mẫu chữ không được gắn thẻ là các chuỗi và sẽ tạo ra một 6 khi được xâu chuỗi 2Ngoại lệ duy nhất là chuỗi tùy chọn, sẽ gây ra lỗi cú pháp 3Lưu ý rằng hai biểu thức này vẫn có thể phân tích cú pháp. Điều này có nghĩa là chúng sẽ không phải tuân theo , điều này sẽ chỉ chèn dấu chấm phẩy để sửa mã mà nếu không thì không thể phân tích cú pháp 4Các hàm thẻ thậm chí không cần trả về một chuỗi 5Đối số đầu tiên mà hàm thẻ nhận được là một mảng các chuỗi. Đối với bất kỳ mẫu chữ nào, độ dài của nó bằng số lần thay thế (lần xuất hiện của 7) cộng với một và do đó luôn không trốngĐối với bất kỳ biểu thức chữ cái mẫu được gắn thẻ cụ thể nào, hàm thẻ sẽ luôn được gọi với cùng một mảng chữ chính xác, bất kể chữ đó được đánh giá bao nhiêu lần 6Điều này cho phép thẻ lưu trữ kết quả dựa trên danh tính của đối số đầu tiên của nó. Để đảm bảo hơn nữa tính ổn định của giá trị mảng, cả đối số đầu tiên và đối số của nó đều bị đóng băng, vì vậy bạn không thể thay đổi chúng theo bất kỳ cách nào Thuộc tính đặc biệt 8, có sẵn trên đối số đầu tiên của hàm thẻ, cho phép bạn truy cập các chuỗi thô khi chúng được nhập mà không cần xử lý 7Ngoài ra, tồn tại phương thức 0 để tạo các chuỗi thô giống như hàm mẫu mặc định và phép nối chuỗi sẽ tạo ra 8 1 có chức năng giống như thẻ "nhận dạng" nếu chữ không chứa bất kỳ chuỗi thoát nào. Trong trường hợp bạn muốn một thẻ nhận dạng thực tế luôn hoạt động như thể chữ không được gắn thẻ, bạn có thể tạo một chức năng tùy chỉnh vượt qua "đã nấu chín" (i. e. trình tự thoát được xử lý) mảng chữ thành 1, giả vờ rằng chúng là chuỗi thô 9Điều này hữu ích cho nhiều công cụ xử lý đặc biệt các chữ được gắn thẻ theo một tên cụ thể 0Trong mẫu chữ bình thường, tất cả đều được phép. Bất kỳ chuỗi thoát không đúng định dạng nào khác đều là lỗi cú pháp. Điêu nay bao gôm
Ghi chú. 1 theo sau là các ký tự khác, mặc dù chúng có thể vô dụng vì không có gì được thoát, không phải là lỗi cú phápTuy nhiên, đây là vấn đề đối với các mẫu được gắn thẻ, ngoài chữ "đã nấu", còn có quyền truy cập vào các chữ thô (các chuỗi thoát được giữ nguyên như hiện trạng) Các mẫu được gắn thẻ sẽ cho phép nhúng các ngôn ngữ (ví dụ: DSL hoặc LaTeX), trong đó các chuỗi thoát khác là phổ biến. Do đó, hạn chế cú pháp của các chuỗi thoát đúng định dạng sẽ bị xóa khỏi các mẫu được gắn thẻ 1Tuy nhiên, các chuỗi thoát bất hợp pháp vẫn phải được biểu diễn trong biểu diễn "nấu chín". Chúng sẽ hiển thị dưới dạng phần tử 8 trong mảng "đã nấu chín" 2Lưu ý rằng hạn chế chuỗi thoát chỉ bị loại bỏ khỏi các mẫu được gắn thẻ chứ không phải từ các mẫu chữ không được gắn thẻ |