গ্রোভির একক বা ডাবল উদ্ধৃতিতে স্ট্রিংয়ের পার্থক্য কী?


97
def a = "a string"
def b = 'another'

কোন পার্থক্য আছে? অথবা জাভাস্ক্রিপ্টের মতো আসুন ইনপুট 'এবং "স্ট্রিংগুলিতে আরও সহজ?

উত্তর:


149

একক উদ্ধৃতি মানক জাভা স্ট্রিং

ডাবল উদ্ধৃতিগুলি একটি টেম্প্লেটেবল স্ট্রিং, যা হয় কোনও জিস্ট্রিংকে যদি তা টেম্প্লেটেড হয় তবে ফিরিয়ে দেবে, অন্যথায় একটি স্ট্যান্ডার্ড জাভা স্ট্রিং। উদাহরণ স্বরূপ:

println 'hi'.class.name    // prints java.lang.String
println "hi".class.name    // prints java.lang.String

def a = 'Freewind'
println "hi $a"            // prints "hi Freewind"
println "hi $a".class.name // prints org.codehaus.groovy.runtime.GStringImpl

যদি আপনি একক উদ্ধৃত স্ট্রিং দিয়ে টেম্পলেট করার চেষ্টা করেন তবে এটি কিছুই করে না, তাই:

println 'hi $a'            // prints "hi $a"

এছাড়াও, তাদের উত্তরে জুলকিউইকস প্রদত্ত লিঙ্কটি পড়ার মতো (উদাহরণস্বরূপ, জিএসআরটিংসের স্ট্রিংগুলি নীচে নেমে যাওয়ার 2/3 অংশ নয় about


6
জিস্ট্রিং স্ট্রিং না হওয়া সম্পর্কে ভাল কথা। এটি একই অক্ষর থাকা সত্ত্বেও জিস্ট্রিং এবং স্ট্রিংয়ের মধ্যে সমান তুলনা ব্যর্থ হওয়ার কারণে সমস্যাযুক্ত হয়ে ওঠে। এটি এমনটি যা আপনি সন্ধান করতে শিখলেন, বিশেষত মানচিত্রে স্ট্রিং / জিস্ট্রিং কীগুলি উল্লেখ করার সময়।
স্টিভেন

19

আমার বোধগম্যতা হল ডাবল-কোটেড স্ট্রিংয়ে ভেরিয়েবল এবং অন্যান্য এক্সপ্রেশনগুলির এম্বেড থাকা তথ্য থাকতে পারে। যেমন: "Hello $name", "Hello ${some-expression-here}"। এই ক্ষেত্রে একটি GStringনিয়মিত পরিবর্তে instantiated করা হবে না String। অন্যদিকে একক-উদ্ধৃত স্ট্রিংগুলি এই সিনট্যাক্সটিকে সমর্থন করে না এবং সর্বদা একটি সমভূমিতে ফলাফল দেয় String। বিষয়টিতে আরও এখানে:

http://docs.groovy-lang.org/latest/html/docamentation/index.html#all-strings

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.