07/09/2018, 13:57

Java 12 bắt đầu phát triển những tính năng mới

Trong khi Java Development Kit (JDK) 11 còn hơn một tháng nữa mới được tung ra, thì nhóm phát triển đã bắt đầu đặt nền tảng cho người kế nhiệm của nó, JDK 12, với hai tính năng thử nghiệm (beta) được phát hành, dự kiến vào tháng 3 năm 2019: switch expressions và raw string literals. ...

Trong khi Java Development Kit (JDK) 11 còn hơn một tháng nữa mới được tung ra, thì nhóm phát triển đã bắt đầu đặt nền tảng cho người kế nhiệm của nó, JDK 12, với hai tính năng thử nghiệm (beta) được phát hành, dự kiến vào tháng 3 năm 2019: switch expressions và raw string literals.

JDK 12 hiện đang được phát triển trong cộng đồng OpenJDK.

Switch expressions

Switch expression sẽ đơn giản hóa quá trình coding bằng cách mở rộng câu lệnh switch để nó có thể được sử dụng như một câu lệnh hoặc một biểu thức. Điều này sẽ cho phép cả hai sử dụng “traditional” hoặc “ simplified” scoping và control flow behavior. Những thay đổi này sẽ dẫn đến việc coding “hàng ngày” được đơn giản hóa và chuẩn bị cho việc sử dụng pattern matching trong switch

Khi các Java builder bắt đầu hỗ trợ pattern matching, các irregularities hiện có của switch statement sẽ trở thành các trở ngại. Chúng bao gồm default control flow behavior của switch blocks; default scoping của switch blocks, trong đó block được coi là một scope duy nhất; và switch sẽ chỉ hoạt động như một statement. Thiết kế hiện tại của Java’s switch statement tuân theo chặt chẽ các ngôn ngữ như C ++ và, theo mặc định, hỗ trợ ngữ nghĩa theo ngữ cảnh. Cách control flow này là rất hữu ích khi viết code cấp thấp. Nhưng khi switch được sử dụng trong các bối cảnh cấp cao hơn, bản chất dễ bị lỗi của nó bắt đầu trở nên trầm trọng hơn.

Raw string literals

Raw string literal sẽ trải dài nhiều dòng trong mã nguồn mà không interpreting các escape sequence, chẳng hạn như ,, hoặc Unicode escape, của biểu mẫu/uXXXCác Java’s builder có nhiều mục tiêu sử dụng dành cho khả năng này, bao gồm:

Làm cho nó dễ dàng hơn để express một chuỗi các ký tự trong một dạng có thể đọc được, mà không cần tới Java Simplification trong việc cung cấp các chuỗi được nhắm mục tiêu cho các ngữ pháp khác ngoài Java.

Cung cấp các string bao trùm nhiều dòng mã nguồn mà không có indicator đặc biệt cho các dòng mới.

Khả năng express các chuỗi giống như chuỗi ký tự chuỗi truyền thống, ngoại trừ các platform-specific line terminator.

Library support để nhân rộng javacstring-literal interpretation về thoát và quản lý left-margin trimming.

Các Java 12’s developer nói rằng Java code cần một cơ chế để nắm bắt các chuỗi ký tự chữ, mà không cần các xử lý đặc biệt với Unicode escaping, dấu gạch chéo ngược hoặc các dòng mới.

Java vẫn là một trong số ít ngôn ngữ không hỗ trợ ngôn ngữ cho các chuỗi thô. Ngoài ra, các chuỗi ký tự thô cũng không trực tiếp hỗ trợ string interpolation.

Techtalk via inforworld

0