অ্যাপ্লিক্রিপ্টে গল্ফ করার জন্য আপনার কাছে কী টিপস রয়েছে? আমি এমন ধারণাগুলি সন্ধান করছি যা আপেল স্ক্রিপ্টের ক্ষেত্রে কমপক্ষে কিছুটা নির্দিষ্ট কোড কোড গল্ফ সমস্যার ক্ষেত্রে প্রয়োগ করা যেতে পারে (যেমন "মন্তব্যগুলি সরান" কোনও উত্তর নয়)।
অ্যাপ্লিক্রিপ্টে গল্ফ করার জন্য আপনার কাছে কী টিপস রয়েছে? আমি এমন ধারণাগুলি সন্ধান করছি যা আপেল স্ক্রিপ্টের ক্ষেত্রে কমপক্ষে কিছুটা নির্দিষ্ট কোড কোড গল্ফ সমস্যার ক্ষেত্রে প্রয়োগ করা যেতে পারে (যেমন "মন্তব্যগুলি সরান" কোনও উত্তর নয়)।
উত্তর:
of
অপারেটর একটি বস্তু থেকে একটি সম্পত্তি পেতে ব্যবহার করা হয়:
log words of "Hello World"
তবে অনেক ক্ষেত্রে আপনি 's
1 টি অক্ষর বাঁচাতে শর্টকাট হিসাবে ব্যবহার করতে পারেন :
log "Hello World"'s words
অ্যাপসক্রিপ্ট সম্পাদক হ'ল একটি সামান্য আইডিই যা সিনট্যাক্স-হাইলাইট করে এবং আপনার কোডটি সুন্দরী করে। যাইহোক, গল্ফিংয়ের উদ্দেশ্যে, এটি প্রতিরক্ষামূলক কারণ এটি ইনডেন্টেশন এবং অতিরিক্ত অতিরিক্ত কীওয়ার্ড যুক্ত করে, যেমন end
বিবৃতি দেওয়ার পরে । উদাহরণ স্বরূপ:
repeat with w in "Hello World"'s words
log w
end
অ্যাপ্লস্ক্রিপ্ট এডিটরটিতে আটকানো এবং সংকলিত / রান করার সময় নিম্নলিখিত হয়ে যায়:
repeat with w in "Hello World"'s words
log w
end repeat
স্পষ্টতই প্রথম স্নিপেটটি গল্ফ করার উদ্দেশ্যে ভাল।
end
মোটামুটি অ্যাপলস্ক্রিপ্ট নির্দিষ্ট।
end
যখন একাধিক নেস্টেড ব্লক রেখেছেন তখন কোন ব্লক স্টার্ট স্টেটমেন্টটির সাথে সম্পর্কিত তা পরিষ্কার করে দেওয়া ধারণাটি
tell
অ্যাপ্লিক্রিপ্টে ব্লকগুলি সাধারণ:
tell application "TextEdit"
activate
end tell
তবে স্থান বাঁচাতে নিম্নলিখিতগুলির সমতুল্য, যখন tell
ব্লকের অভ্যন্তরটি কেবল একটি লাইন থাকে:
tell application "TextEdit" to activate
tell app "TextEdit" to activate
।
কিছু শব্দ সংক্ষিপ্ত প্রতিশব্দ আছে। উদাহরণস্বরূপ, * application
হিসাবে লেখা যেতে পারে app
এবং string
হিসাবে লেখা যেতে পারে text
।
এছাড়াও, (বা ) every <noun>
হিসাবে কেবল বহুবচন হিসাবে লেখা যেতে পারে ।characters of "hello world"
"foo"'s characters
* যদিও স্ক্রিপ্ট সম্পাদকের সংকলক এটি আবার পরিবর্তন করবে।
কোনও ক্রিয়াকলাপের জন্য যা কিছু করার জন্য একটি উদ্ধৃতি প্রয়োজন, অর্থাত্
লগ "হ্যালো ওয়ার্ল্ড!"
আপনি সংক্ষিপ্ত করতে পারেন
লগ "হ্যালো ওয়ার্ল্ড!"
পুনরাবৃত্তি লুপগুলিতে, কেউ পুরোপুরি "সময়" শব্দটি মুছে ফেলতে পারে।
এক্স বার পুনরাবৃত্তি শেষ
বনাম
পুনরাবৃত্তি এক্স শেষ
এই অপারেটরদের যে কোনও সময় ডাকা হওয়ার পরে আপনি এগুলি যথাক্রমে ≤
এবং এর সাথে প্রতিস্থাপন করতে পারেন ≥
। যদিও এটি বাইট গণনা হ্রাস করতে পারে না (যদি না বিশেষ বাইট গণনা কনভেনশনগুলি কার্যকর করা হয় যা আমি প্রস্তাব করি), এটি চরিত্রের সংখ্যা হ্রাস করে না ।
আপনি নিম্নলিখিত অক্ষরগুলি সহ STDIN থেকে দখল করতে পারেন:
চলমান আরগভিতে শেষ
আপনার যদি দ্রুত কোনও কোড থেকে বেরিয়ে আসতে হয় (যে কোনও কারণেই, অর্থাত্ অতিরিক্ত পরিমাণে প্রতিরোধ করা if
) ...
অব্যাহতিপ্রাপ্ত
আপেলস স্ক্রিপ্ট পাঠযোগ্যতার সাহায্যে কিছু অতিরিক্ত কীওয়ার্ড সন্নিবেশ করার অনুমতি দেয়:
log the words of "Hello World"
তবে the
এখানে সম্পূর্ণরূপে অতি ضرورتবহ এবং 4 টি চরিত্র সংরক্ষণের জন্য বাদ দেওয়া যেতে পারে:
log words of "Hello World"
log"Hello World"'s words
কারণ আপনার 1) কোনও অভিব্যক্তি এবং উদ্ধৃত আইটেম এবং 2) এর মধ্যে স্থানের প্রয়োজন নেই কারণ 's
প্রতিস্থাপনে ব্যবহার করা যেতে পারে of
।
's
এই উত্তর কোডগল্ফ.স্ট্যাকেকেক্সচেঞ্জ / এ / 64376464৩/১১২৯ । এ সম্বোধন করা হয়েছে । log"
যদিও সম্পর্কে জেনে রাখা ভাল ।
উদ্ধৃতি সম্পর্কিত পোস্টের মতো, আমি পরে বুঝতে পারি যে আপনি এই জাতীয় জিনিসগুলিও ছোট করতে পারেন:
যদি "a" = অক্ষরের 1 (স্ট্রিং হিসাবে x) থাকে তবে {সত্য, সত্য return
প্রতি
যদি "a" = অক্ষরের 1 (স্ট্রিং হিসাবে x) থাকে তবে {সত্য, সত্য return
এটি আপনার জন্য বন্ধনীও স্থান করে দেবে। এই উদাহরণে, আমি 5 বাইট সংরক্ষণ করি।
যেসব প্রশ্নের ক্ষেত্রে কেস সংবেদনশীলতা প্রয়োজন, সে ক্ষেত্রে আসলে মামলাগুলি মোকাবেলা করা কঠিন হতে পারে।
মামলা বিবেচনা (কেস সংবেদনশীল স্টাফ সঙ্গে কিছু করার জন্য) বিবেচনা শেষ
আমি আসলে এই কীওয়ার্ডটি জানতাম না যতক্ষণ না আমার সত্যি এটির প্রয়োজন হয়। এই টিপস পৃষ্ঠায় অন্যান্য টিপস ব্যবহার করে, আমরা এটিকে এখানে কমিয়ে আনতে পারি:
মামলা বিবেচনা (কেস সংবেদনশীল স্টাফ সঙ্গে কিছু করার জন্য) শেষ
যতদূর আমি জানি এটির জন্য একটি পূর্ণ বিবৃতি প্রয়োজন। (আমি অনেক কিছুই চেষ্টা করেছি।) আরও বিশদ জানতে এই পৃষ্ঠাটি দেখুন ।
কয়েকটি ব্যতিক্রমী ক্ষেত্রে, «ডাবল এঙ্গেল বন্ধনী» বা «ডাবল শেভরন» একটি কমান্ড, প্যারামিটার বা ধ্রুবকের ইংরেজি নামের চেয়ে কম হতে পারে।
শেভ্রন-এনকোডযুক্ত ফর্মটি 20 থেকে 16 টি অক্ষর থেকে ক্লিপবোর্ডটি মোছার জন্য অ্যাপলস্ক্রিপ্ট সঙ্কুচিত করবে :
set the clipboard to -- 20
«event JonspClp» -- 16
ডায়লগ থেকে পাঠ্য আনার সময় এটি 2 টি অক্ষর ফেলে দেবে (যেমনটি মেট্রোনোম এবং পাই দিবসে ঘটে ):
(display dialog""default answer"")'s text returned -- 46
(display dialog""default answer"")'s«class ttxt» -- 44
(আপনার যদি কমপক্ষে ম্যাক ওএস এক্স 10.4 থাকে তবে আপনি ডায়লগটি এড়িয়ে চলতে এবং ওসাস্ক্রিপ্টের কমান্ড-লাইন আর্গুমেন্টগুলি ব্যবহার করতে পছন্দ করতে পারেন ) (1 )
মার্কিন কীবোর্ডের সাথে, «হ'ল বিকল্প-\ এবং option বিকল্প-শিফট- \ \ একটি কমান্ডে «event abcdefgh»
16 টি অক্ষর রয়েছে। একটি প্যারামিটার বা ধ্রুবকের «class abcd»
12 টি অক্ষর রয়েছে।
শেভ্রন-এনকোডযুক্ত ফর্মটি গল্ফের জন্য প্রায় সর্বদা দীর্ঘ। এখানে দ্বৈত কোণ বন্ধনী ছাড়াই একটি উদাহরণ রয়েছে:
set x to open for access"output"write permission 1
write"One line of text
"to x
close access x
এবং তাদের সাথে একই:
set x to«event rdwropen»"output"given«class perm»:1
«event rdwrwrit»"One line of text
"given«class refn»:x
«event rdwrclos»x
_open for access
(16) থেকে «event rdwropen»
(16) পরিবর্তন নিরপেক্ষ ছিল। write permission_
(17) থেকে given«class perm»:
(18) পরিবর্তন করতে 1 টি অক্ষর ব্যয় হয়। অন্যান্য ডাবল এঙ্গেল বন্ধনীগুলির দাম বেশি।
ডাবল এঙ্গেল বন্ধনী ব্যবহার করার জন্য আপনাকে জাদু 4-বর্ণ বা 8-বর্ণের কোডটি জানতে হবে। স্ক্রিপ্ট সম্পাদক থেকে স্ক্রিপ্ট ফাইল সংরক্ষণ করে আমি কিছু কোড খুঁজে পেয়েছি, তারপরে এটি একটি হেক্স সম্পাদক এ খোলার মাধ্যমে। আমি emacs
টার্মিনালে দৌড়ে গিয়ে ব্যবহার করেছি M-x hexl-find-file
। আমি দেখেছি এবং কিছু কোড সম্পাদিত মত JonspClp
মধ্যে JanspClp
, এবং ttxt
মধ্যে atxt
। আমি তখন ফাইলটি সংরক্ষণ করে স্ক্রিপ্ট সম্পাদক এ আবার খুললাম। «event JanspClp»
এবং «class atxt»
স্ক্রিপ্ট হাজির।
অ্যাপলস্ক্রিপ্ট টার্মিনোলজি এবং অ্যাপল ইভেন্ট কোড রেফারেন্স শিরোনামের একটি দস্তাবেজে কিছু কোড তালিকাভুক্ত করা হয়েছে। আমি এর একটি অনুলিপি https://applescriptlibrary.wordpress.com/ এ পেয়েছি
স্ক্রিপ্ট সম্পাদক আপনার স্ক্রিপ্টটি সংরক্ষণ করার আগে ডাবল এঙ্গেল বন্ধনীগুলিকে ইংরেজিতে অনুবাদ করবে। শেভ্রন ডিফারেন্সের জন্য, আপনাকে অবশ্যই স্ক্রিপ্টটি অন্য পাঠ্য সম্পাদকে যেমন টেক্সটএডিটে লিখতে হবে। স্ক্রিপ্টটি ম্যাক ওএস রোমান (বা ম্যাকরোমন) এনকোডিংয়ে একটি সরল পাঠ্য ফাইল হিসাবে সংরক্ষণ করুন। ম্যাক ওএস এক্স পছন্দ করে যে আপনি ফাইলটির নাম অ্যাপ্লিকেশন স্ক্রিপ্টের সাথে রেখে দিন।
আপনি যদি বাইটগুলি গণনা করেন তবে ম্যাক্রোম্যানের প্রতিটি চরিত্রের জন্য 1 বাইট থাকে, তাই প্রতিটি বা »বা 1 গতি 1 বাইট হিসাবে গণ্য হয়।