যেহেতু আমি অনেক প্রশ্ন তাদের আগ্রহী ভাষায় গল্ফ করার জন্য টিপস জিজ্ঞাসা করতে দেখেছি, তাই আমি আমার প্রিয় ভাষা: গ্রোভি জিজ্ঞাসা করার সিদ্ধান্ত নিয়েছি। লোকেরা কিছু টিপস এবং কৌশল দিতে পারে যা গ্রোভির সাথে গল্ফ করার জন্য ব্যবহৃত হবে।
যেহেতু আমি অনেক প্রশ্ন তাদের আগ্রহী ভাষায় গল্ফ করার জন্য টিপস জিজ্ঞাসা করতে দেখেছি, তাই আমি আমার প্রিয় ভাষা: গ্রোভি জিজ্ঞাসা করার সিদ্ধান্ত নিয়েছি। লোকেরা কিছু টিপস এবং কৌশল দিতে পারে যা গ্রোভির সাথে গল্ফ করার জন্য ব্যবহৃত হবে।
উত্তর:
আমি এই পুরো গল্ফিং জিনিসে নতুন, আমি এ পর্যন্ত যা পেয়েছি:
বন্ধ ব্যবহারগুলি কার্যকরী নয়:
ডিফ এ (খ) {প্রিন্ট বি
এর চেয়ে লম্বা
a = it এটি মুদ্রণ করুন}
আপনি অ্যারেতে একটি নেতিবাচক সূচক ব্যবহার করতে পারেন এবং আকারের জন্য একটি উপাধী হিসাবে তালিকাগুলি -
সি = "এবিসি" d = ["ক", "খ", "গ"] সি [সি। সাইজ () - 1] == গ [-1] টিপুন সি [সি। সাইজ () - 2] == সি [-2] টিপুন দাবী করুন [d.size () - 1] == d [-1] দাবী করুন ডি.লাস্ট () == ডি [-1]
স্প্রেড অপারেটর সংগ্রহের জন্য একটি শর্টকাট:
দাবী করুন * * সাইজ () == d.collect {it.size ()}
বাছাইয়ের জন্য স্পেসশিপ অপারেটরটি ব্যবহার করুন:
e = [54,5,12]
assert e.sort{a,b->a<=>b}==e.sort{a,b->a<b?-1:+1}
assert e.sort{a,b->a<=>b}==e.sort{a,b->if (a>b) {return(-1)} else {return(+1)}}
রূপান্তরগুলি সম্পাদনা করুন:
assert "123" as int == "123".toInteger()
*.X
স্প্রেড অপারেটর প্রায়শই লিখিত হতে পারে.X
গ্রোভি কিছুটা ভার্জোজ ভাষা হওয়ায় আপনি পদ্ধতি কলগুলি সংক্ষিপ্ত করতে গ্রোভিস এমওপি ব্যবহার করতে পারেন।
উদাহরণস্বরূপ নীচের স্নিপেট চতুর্থ ব্যবহারের পরে প্রদান করবে:
''.metaClass.r<<{i->(int)Math.random()*i}
''.r(12)
টিপ গল্ফিং সম্পাদনা:
0.metaClass.r<<{i->(int)Math.random()*i}
0.r(12)
বা, আপনি জানেন:
r={(int)Math.random()*it}
r(12)
grep
সংক্ষিপ্ত এবং বেশ কয়েকটি সমস্যা নিয়ে কাজ করেশূন্যস্থানগুলির সাথে তালিকা হিসাবে এবং নেতৃস্থানীয় উপাদানগুলি ছাড়াই একটি স্ট্রিংয়ের চরগুলি পান: 'ABC XYZ'.grep()
প্রত্যাবর্তন[A, B, C, , X, Y, Z]
রেজিপ্সপ সহ গ্রেপ উচ্চতর ক্ষেত্রে রূপান্তরিত করার চেয়ে সংক্ষিপ্ত, যদি প্রয়োজন হয়: it.grep(~/(?i)$c/)
পরিবর্তেit.toUpperCase().grep(c)
'ABC XYZ'as Set
একটি চরিত্রটি ছোট এবং এটি বেশিরভাগ জায়গাতেই কাজ করে
অবজেক্টের তালিকা থেকে একটি অ্যারে নেওয়া
আপনার যদি অবজেক্টগুলির একটি তালিকা থাকে তবে:
def users = [[user:'A',id:1],[user:'B',id:2],[user:'C',id:3]]
আপনি একটি নির্দিষ্ট সম্পত্তি ব্যবহার করে একটি অ্যারেলিস্ট তৈরি করতে পারেন:
def userIds = users*.id // [1, 2, 3] no explicit loops!
বোনাস: গ্রোভী ... কারাগারে!
ওয়েল, গ্রেস ফ্রেমওয়ার্কে আমাদের একাধিক গুণাবলীর সাহায্যে একটি নির্বাচন থেকে অনেকগুলি মান অবশ্যই পাওয়া উচিত । আপনি লুপগুলি, সমতল এবং অন্যান্য প্রোগ্রামিংগুলিকে আরও সাধারণ কাঠামো ব্যবহার করতে পারেন তবে কিছু লাইন সংরক্ষণ করতে পারেন। আপনার যদি পছন্দ মতো থাকে তবে:
<select id="users" multiple="true" name="users">
<option value="193">User A</option>
<option value="378">User B</option>
<option value="377">User C</option>
</select><%-- No Grails tags for now --%>
তারপরে, আপনার নিয়ামকটিতে আপনি সহজভাবে লিখতে পারেন:
def aListOfUsers = User.getAll(params.list('userIds'))