जावा 13 में वे "टेक्स्ट ब्लॉक" जोड़ना चाहते हैं

पाठ के ब्लॉक जावा 13. में रिलीज के लिए योजनाबद्ध हैं। यह जेईपी 355 में घोषित किया गया था।

पाठ के ब्लॉक एक बहु-पंक्ति स्ट्रिंग शाब्दिक है जो अधिकांश विशेष पात्रों से बचने की आवश्यकता को समाप्त करता है और स्वचालित रूप से लाइन ब्रेक बनाता है।

जेईपी 326 में शुरू होने वाले अध्ययनों में यह एक और प्रयास है।



Jep 355 गोल


  • भागने के क्रम से बचने के द्वारा जावा कोड लिखना सरल करें।
  • कोड पठनीयता में सुधार।

JEP 355 क्या निश्चित रूप से हासिल करने की कोशिश नहीं कर रहा है


  • यह java.lang.String तरह एक नए संदर्भ प्रकार को परिभाषित करने का प्रयास नहीं है।
  • यह स्ट्रिंग ऑपरेटर "+" को ओवरराइड करने का प्रयास नहीं है।
  • पाठ के ब्लॉक लाइन प्रक्षेप का समर्थन नहीं करते हैं। इस सुविधा को बाद के JEP में जोड़ा जा सकता है।


प्रेरणा


XML, HTML, JSON, आदि को एम्बेड करने के लिए जावा में। स्ट्रिंग्स के परिरक्षण और संघटन के साथ महत्वपूर्ण संपादन आमतौर पर आवश्यक होता है। एक टुकड़ा अक्सर पढ़ना मुश्किल होता है और उसे बनाए रखना मुश्किल होता है।

तदनुसार, नया JEP पठनीयता दोनों में सुधार करता है और जावा प्रोग्रामों की एक विस्तृत कक्षा को लिखने की क्षमता को जोड़ता है - कई "लाइनों" वाली लाइन का उपयोग करके और बिना किसी दृश्य गड़बड़ी के। अक्षर। वास्तव में, यह पाठ का द्वि-आयामी ब्लॉक है, न कि पात्रों का एक-आयामी अनुक्रम।

सिंटेक्स और विवरण


लाइनों के ब्लॉक """ और """ दाएं और बाएं से फंसाए जाते हैं। ब्लॉक की सामग्री """ बाद पहले वर्ण से शुरू होती है और """ से पहले अंतिम वर्ण के साथ समाप्त होती है। ट्रिपल कोट्स को चुना जाता है ताकि यह स्पष्ट हो सके कि ये पाठ की पंक्तियाँ हैं, लेकिन ताकि आप उन्हें एक नियमित स्ट्रिंग शाब्दिक ( "..." ) से अलग कर सकें।

ब्लॉक में स्लैश ( \ ) के बिना सीधे उद्धरण चिह्न ( " ) हो सकते हैं। आप \" उपयोग भी कर सकते हैं \" , लेकिन यह अनुशंसित नहीं है।

लाइन रैपिंग स्वचालित रूप से किया जाता है। \ N के उपयोग की अनुमति है लेकिन अनुशंसित नहीं है।

 """ line 1 line 2 line 3 """ 

उसी प्रकार

 "line 1\nline 2\nline 3\n" 

या

 "line 1\n" + "line 2\n" + "line 3\n" 

यहाँ पाठ के खाली ब्लॉक का एक उदाहरण दिया गया है:

 String empty = """ """; 

यहाँ पाठ के ब्लॉक का उपयोग करने की बुरी प्रथा है:

 String a = """"""; String b = """ """; String c = """ "; String d = """ abc \ def """; 

पाठ के ब्लॉक में अनुक्रम से बच


एस्केप सीक्वेंस की व्याख्या की जाती है। इसका मतलब है कि डेवलपर्स एस्केप सीक्वेंस लिख सकते हैं, उदाहरण के लिए, \n अंदर के ब्लॉक।

उदाहरण


एचटीएमएल


 String html = """ <html> <body> <p>Hello, world</p> </body> </html> """; 

पुराना तरीका है
 String html = "<html>\n" + " <body>\n" + " <p>Hello, world</p>\n" + " </body>\n" + "</html>\n"; 


एसक्यूएल


 String query = """ SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB` WHERE `CITY` = 'INDIANAPOLIS' ORDER BY `EMP_ID`, `LAST_NAME`; """; 

पुराना तरीका है
 String query = "SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`\n" + "WHERE `CITY` = 'INDIANAPOLIS'\n" + "ORDER BY `EMP_ID`, `LAST_NAME`;\n"; 


लिपि


 ScriptEngine engine = new ScriptEngineManager().getEngineByName("js"); Object obj = engine.eval(""" function hello() { print('"Hello, world"'); } hello(); """); 

पुराना तरीका है
 ScriptEngine engine = new ScriptEngineManager().getEngineByName("js"); Object obj = engine.eval("function hello() {\n" + " print('\"Hello, world\"');\n" + "}\n" + "\n" + "hello();\n"); 

Source: https://habr.com/ru/post/hi454144/


All Articles