Sigil love là gì
Elixir cung cấp cho chúng ta một cú pháp thay thế để mô tả và làm việc với chuỗi kí tự. Một sigil sẽ bắt đầu với dấu ngã Chuỗi sigils được cung cấp ban đầu bao gồm:
Chuỗi phân tách bao gồm:
Kí tự 1 và 0 sigils sinh ra chuỗi kí tự tương ứng. Ví dụ:
Chúng ta có thể thấy kí tự thường 1 sẽ nội suy phần tính toán, trong khi kĩ tự hoa 0 không. Chúng ta sẽ thấy chuỗi kí tự hoa / thường sẽ là chủ đề thường thấy của các sigils có sẵn. 3 và 2 sigils thường được sử dụng để biểu diễn biểu thức chính qui. Biểu thức chính qui đó được tạo ra ngay lúc chạy hoặc là để sử dụng bên trong hàm 2. Ví dụ:
Chúng ta có thể thấy trong ví dụ đầu tiên kiểm tra về mặt đẳng thức, 3 không khớp với biểu thức chính qui, bởi vì nó được viết hoa. Do Elixir hỗ trợ biểu thức chính qui theo chuẩn Perl ( Perl Compatible Regular Expressions (PCRE)), chúng ta có thể thêm 4 vào cuối của sigils để bật chế độ kiểm tra không phụ thuộc vào viết hoa.
Hơn nữa, Elixir cung cấp Regex API được xây dựng trên nền của thư viện biểu thức chính qui của Erlang. Hãy thử thực hành hàm 5 sử dụng regex sigil nào:
Như chúng ta có thể thấy, chuỗi 6 được chia tại dấu gạch dưới nhờ có sự giúp đỡ của 7 sigil. Hàm 8 trả lại một chuỗi. 5 và 4 sigils được sử dụng để sinh dữ liệu chuỗi. Ví dụ:
Vậy hai biểu diễn khác gì nhau? Điểm khác nhau tương tự như sigil cho chuỗi các kí tự mà chúng ta đã xem ở trên. Câu trả lời nằm ở việc nội suy và sử dụng chuỗi escape. Hãy xem một ví dụ khác:
Chuỗi từ sigil rất tiện dụng trong nhiều hoàn cảnh. Nhờ nó chúng ta có thể tiết kiệm thời gian, số lượng phím bấm và thậm chí có thể giảm được sự phức tạp bên trong dự án. Hãy xem ví dụ đơn giản dưới đây:
Chúng ta có thể thấy những thứ được phân tách bởi dấu cách sẽ thành một phần tử trong chuỗi. Tuy nhiên, không có nhiều khác biệt giữa hai ví dụ. Một lần nữa, sự khác biệt lại chính là việc nội suy và chuỗi kí tự escape. Hãy xem ví dụ dưới đây:
Một trong những mục tiêu của Elixir là trở thành một ngôn ngữ có thể mở rộng được. Do đó mà không hề ngạc nhiên khi chúng ta có thể tự tạo mới sigils. Trong ví dụ dưới đây, chúng ta sẽ tạo mới sigil để chuyển một chuỗi sang dạng viết hoa. Do chúng ta đã có sẵn hàm để làm việc đó trong Elixir ( 1), chúng ta sẽ bọc hàm đó lại bởi sigil.
Đầu tiên chúng ta định nghĩa một module tên là 2 và bên trong module đó, chúng ta tạo một hàm tên là 3. Do chưa có 4 nào có sẵn trong không gian sigil, chúng ta sẽ có thể sử dụng được kí tự đó. Phần 5 nói lên rằng chúng ta muốn sử dụng kí tự 6 sau dấu ngã của sigil. Định nghĩa của hàm sẽ phải nhận vào 2 biến, một input và một chuỗi. |