Java的原始字符串文字
似乎“ 原始字符串文字 ”即將出現在Java中。 JEP 326開始的(“原始字符串字面量”) 發行JDK-8196004 ,并宣布為“新JEP候選人” 3月2日的JEP和相關問題的人指出,“Java的仍然是一小群現代編程語言中的一個不為原始字符串提供語言級別的支持。” JEP及其相關問題特別引用了編程語言C, C ++ , C# (“ 逐字 ”), Dart , Go , Groovy , Haskell , JavaScript , Kotlin , Perl , PHP , Python , R , Ruby , Scala和Swift和“ Unix工具” bash , grep和sed “針對它們的定界符以及原始行和多行字符串的使用而進行了調查?!?
JEP 326的“摘要”概述了擬議的Java原始字符串文字:“原始字符串文字可以跨越源代碼的多行,并且不能解釋形式為\ n的轉義序列,例如\ n或Unicode轉義。 uXXXX?!?該JEP的“動機”部分添加了以下內容:“該JEP提出了一種新型的文字,即原始字符串文字 ,該文字保留了Java轉義符和Java行終止符規范,以提供在許多情況下更易讀和可維護的字符序列。而不是現有的傳統字符串文字?!?JEP 326 沒有引入插值 ,實際上,在其“非目標”部分中將其排除在外:“原始字符串文字不直接支持字符串插值。 將來的JEP中可以考慮使用插值?!?
Java 長期以來 一直 希望使用 多行String文字 。 JEP 326 (“原始字符串文字”)當前列出了幾個示例,這些示例說明了原始字符串文字如何使在Java中更容易實現常見事物,并且這些示例用法包括多行字符串 ,操作系統文件路徑 , 正則表達式 , 關系數據庫SQL語句 ,以及polygot( Java + JavaScript )。
JEP 326的當前版本指出,將通過使用“ 反引號 ”字符( ` )來表示Java的原始字符串文字,該字符在JEP中也被描述為\u0060 ( Unicode“ Grave Accent” ),“ backquote ”,和“ 重音 ”。 我沒有顯示提議的語法的任何示例,因為JEP已經很好地列出了這些提議的原始字符串文字示例以及實現同一件事所需的傳統Java代碼的示例。 如果支持原始字符串文字,則可以輕松地將所需的當前語法與將來完成相同操作所需的語法進行比較。
對Java中的原始字符串文字的支持將為希望編寫更具可讀性的代碼來支持JEP中描述的用例的Java開發人員提供便利。 它將為庫甚至JDK代碼提供類似的優勢。 core-lib-devs郵件列表帖子“ Raw String Literal Library Support ” [ JDK-8196005 ]開始了“關于RSL庫支持的討論”。 (在這種情況下,“庫支持”的上下文是JDK,RSL代表Raw String Literal。)。
在參考的“ 原始字符串文字庫支持”一文中 , Jim Laskey提供了可能添加到String的方法列表,以利用原始字符串文字。 這些引發討論的想法包括“線路支持”,“修剪”方法的增強,“保證金管理”和“逃生管理”。 其中一些由RSL促進,而其他一些由RSL必需。 引用的文章提供了每個示例的多個示例。
問題JDK-8198986指出“原始字符串文字需要一個新的JLS節。” 此問題鏈接到當前建議的部分 , 該部分將添加到所引用的Java語言規范中 。
盡管JEP 326仍然只是“候選”,并且與特定版本的Java無關,但有關它的最新工作以及郵件列表中最近的討論(尋求與之相關的輸入)使我對我們會看到多種形式保持謹慎的樂觀態度。 Java字符串和其他原始字符串文字將在將來的版本中引入Java。
翻譯自: https://www.javacodegeeks.com/2018/03/raw-string-literals-coming-to-java.html
總結
以上是生活随笔為你收集整理的Java的原始字符串文字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无敌个什么梗
- 下一篇: Java可能使用UTF-8作为其默认字符