অ্যাপ্লিক্রিপ্টে গল্ফ করার টিপস


13

অ্যাপ্লিক্রিপ্টে গল্ফ করার জন্য আপনার কাছে কী টিপস রয়েছে? আমি এমন ধারণাগুলি সন্ধান করছি যা আপেল স্ক্রিপ্টের ক্ষেত্রে কমপক্ষে কিছুটা নির্দিষ্ট কোড কোড গল্ফ সমস্যার ক্ষেত্রে প্রয়োগ করা যেতে পারে (যেমন "মন্তব্যগুলি সরান" কোনও উত্তর নয়)।


এই প্রশ্নটি খুব ব্রড। এটি একটি সম্পূর্ণ, ভাল-লিখিত উত্তর দিয়ে সম্ভবত উত্তর দেওয়া যাবে না (এবং প্রশ্ন এমনকি স্পষ্টভাবে এটি নিষেধও করে)।
রেইনবোল্ট

1
তবুও, এটি কেবল একটি মজার প্রশ্ন :)
ম্যাডটাক্স

5
সিডাব্লুতে রূপান্তরিত করার জন্য চিহ্নিত করা হয়েছে ('এক্সে গল্ফ করার টিপস' সম্পর্কিত আমাদের সম্মেলন অনুসারে)।
জিওবিটস

@ ম্যাডটাক্স হ্যাঁ, অ্যাপলস্ক্রিপ্ট সাধারণত গল্ফিং ভাষায় প্রথম পছন্দ নয় ;-)। তবে এমন অনুষ্ঠানগুলি রয়েছে , বিশেষত সীমাবদ্ধ-উত্স বিভাগে যেখানে এটি প্রান্তিকভাবে কার্যকর হয়ে ওঠে।
ডিজিটাল ট্রমা

4
@ রেনবোল্ট এক্স প্রশ্নে গল্ফ করার অন্যান্য টিপসের সাথে প্রকৃতির কীভাবে এটি আলাদা ?
ডিজিটাল ট্রমা

উত্তর:


6

ofঅপারেটর একটি বস্তু থেকে একটি সম্পত্তি পেতে ব্যবহার করা হয়:

log words of "Hello World"

তবে অনেক ক্ষেত্রে আপনি 's1 টি অক্ষর বাঁচাতে শর্টকাট হিসাবে ব্যবহার করতে পারেন :

log "Hello World"'s words

6
এটি কিছুটা হাস্যকর বলে মনে হচ্ছে, তবে কিছুটা আশ্চর্যজনকও that আমি ভাবতে পারি যে কোনও ভাষা ডিজাইনার এই ধারণাটি গোষ্ঠীতে রেখেছেন।
জিওবিটস

9
@ জিওবিটস এগুলি সাধারণভাবে অ্যাপলস্ক্রিপ্ট বর্ণনা করার জন্য দুর্দান্ত বিশেষণ। আমি ঠিক করেছিলাম না যে অ্যাপ্লস্ক্রিপ্টটি হাস্যকর বা দুর্দান্তভাবে হাস্যকর ;-)
ডিজিটাল ট্রমা

4

অ্যাপসক্রিপ্ট সম্পাদক হ'ল একটি সামান্য আইডিই যা সিনট্যাক্স-হাইলাইট করে এবং আপনার কোডটি সুন্দরী করে। যাইহোক, গল্ফিংয়ের উদ্দেশ্যে, এটি প্রতিরক্ষামূলক কারণ এটি ইনডেন্টেশন এবং অতিরিক্ত অতিরিক্ত কীওয়ার্ড যুক্ত করে, যেমন endবিবৃতি দেওয়ার পরে । উদাহরণ স্বরূপ:

repeat with w in "Hello World"'s words
log w
end

অ্যাপ্লস্ক্রিপ্ট এডিটরটিতে আটকানো এবং সংকলিত / রান করার সময় নিম্নলিখিত হয়ে যায়:

repeat with w in "Hello World"'s words
    log w
end repeat

স্পষ্টতই প্রথম স্নিপেটটি গল্ফ করার উদ্দেশ্যে ভাল।


আইএমও এটিকে সাধারণ টিপ হিসাবে দেখা যেতে পারে, এএস-এর সাথে নির্দিষ্ট নয়। অনেক আধুনিক আইডিই যদি এটি দেয় তবে এটি করেন।
Geobits

2
@ জিওবিটস সম্মত যদিও আমি মনে করি যে পরে নির্দিষ্ট কীওয়ার্ডগুলির সংযোজন endমোটামুটি অ্যাপলস্ক্রিপ্ট নির্দিষ্ট।
ডিজিটাল ট্রমা

হ্যাঁ, এটি আমার কাছে কেবল বিস্মিত। অপ্রয়োজনীয় বন্ধনী ইত্যাদির সাথে ইন্ডেন্টেশন / স্পেসিং জিনিসটি খুব সাধারণ বিষয়
জিওবিটস

@ জিওবিটস অ্যাপলস্ক্রিপ্ট পাঠযোগ্যতা সম্পর্কে সমস্ত কিছু। আমার ধারণা, আপনি endযখন একাধিক নেস্টেড ব্লক রেখেছেন তখন কোন ব্লক স্টার্ট স্টেটমেন্টটির সাথে সম্পর্কিত তা পরিষ্কার করে দেওয়া ধারণাটি
ডিজিটাল ট্রমা

4

tell অ্যাপ্লিক্রিপ্টে ব্লকগুলি সাধারণ:

tell application "TextEdit"
    activate
end tell

তবে স্থান বাঁচাতে নিম্নলিখিতগুলির সমতুল্য, যখন tellব্লকের অভ্যন্তরটি কেবল একটি লাইন থাকে:

tell application "TextEdit" to activate

3
যা নিজেই tell app "TextEdit" to activate
wchargin

@WChargin হ্যাঁ আপনি চাইলে এটিকে অন্য উত্তর হিসাবে যুক্ত করুন।
ডিজিটাল ট্রমা

4

কিছু শব্দ সংক্ষিপ্ত প্রতিশব্দ আছে। উদাহরণস্বরূপ, * applicationহিসাবে লেখা যেতে পারে appএবং stringহিসাবে লেখা যেতে পারে text

এছাড়াও, (বা ) every <noun>হিসাবে কেবল বহুবচন হিসাবে লেখা যেতে পারে ।characters of "hello world""foo"'s characters

* যদিও স্ক্রিপ্ট সম্পাদকের সংকলক এটি আবার পরিবর্তন করবে।


3

উদ্ধৃতি আবশ্যক অপারেশন

কোনও ক্রিয়াকলাপের জন্য যা কিছু করার জন্য একটি উদ্ধৃতি প্রয়োজন, অর্থাত্

লগ "হ্যালো ওয়ার্ল্ড!"

আপনি সংক্ষিপ্ত করতে পারেন

লগ "হ্যালো ওয়ার্ল্ড!"

পুনরাবৃত্তি

পুনরাবৃত্তি লুপগুলিতে, কেউ পুরোপুরি "সময়" শব্দটি মুছে ফেলতে পারে।

এক্স বার পুনরাবৃত্তি
শেষ

বনাম

পুনরাবৃত্তি এক্স
শেষ

<= এবং> =

এই অপারেটরদের যে কোনও সময় ডাকা হওয়ার পরে আপনি এগুলি যথাক্রমে এবং এর সাথে প্রতিস্থাপন করতে পারেন । যদিও এটি বাইট গণনা হ্রাস করতে পারে না (যদি না বিশেষ বাইট গণনা কনভেনশনগুলি কার্যকর করা হয় যা আমি প্রস্তাব করি), এটি চরিত্রের সংখ্যা হ্রাস করে না

এসটিডিন থেকে গ্র্যাব করা হচ্ছে

আপনি নিম্নলিখিত অক্ষরগুলি সহ STDIN থেকে দখল করতে পারেন:

চলমান আরগভিতে
শেষ

দ্রুত বের হচ্ছে Ex

আপনার যদি দ্রুত কোনও কোড থেকে বেরিয়ে আসতে হয় (যে কোনও কারণেই, অর্থাত্ অতিরিক্ত পরিমাণে প্রতিরোধ করা if) ...

অব্যাহতিপ্রাপ্ত

হাহা বাহ, এটি খুঁজে পেতে আপনি অবশ্যই কিছু ট্রলিং করেছেন;)
বিটা ডেকায়

আমি এটা অনেক ব্যবহার করি ।
অ্যাডিসন ক্রম্প 18

প্রশ্ন নাকি টিপস?
বিটা ক্ষয়

টিপস। এবং সাধারণভাবে অ্যাপলস্ক্রিপ্ট।
অ্যাডিসন ক্রম্প 18

ওহ আমি প্রশ্নটি সম্পর্কে কথা বলছিলাম :)
বিটা ডিকায়

2

আপেলস স্ক্রিপ্ট পাঠযোগ্যতার সাহায্যে কিছু অতিরিক্ত কীওয়ার্ড সন্নিবেশ করার অনুমতি দেয়:

log the words of "Hello World"

তবে theএখানে সম্পূর্ণরূপে অতি ضرورتবহ এবং 4 টি চরিত্র সংরক্ষণের জন্য বাদ দেওয়া যেতে পারে:

log words of "Hello World"

2
আপনার এমনকি সংক্ষিপ্ত রূপগুলি থাকতে পারে:, log"Hello World"'s wordsকারণ আপনার 1) কোনও অভিব্যক্তি এবং উদ্ধৃত আইটেম এবং 2) এর মধ্যে স্থানের প্রয়োজন নেই কারণ 'sপ্রতিস্থাপনে ব্যবহার করা যেতে পারে of
অ্যাডিসন ক্রম্প 21

@ ভিটিসিএকএভিএসমোএসি হ্যাঁ, 'sএই উত্তর কোডগল্ফ.স্ট্যাকেকেক্সচেঞ্জ / এ / 64376464৩/১১২৯ । এ সম্বোধন করা হয়েছে । log"যদিও সম্পর্কে জেনে রাখা ভাল ।
ডিজিটাল ট্রমা

2

বন্ধনী সংক্ষিপ্তকরণ

উদ্ধৃতি সম্পর্কিত পোস্টের মতো, আমি পরে বুঝতে পারি যে আপনি এই জাতীয় জিনিসগুলিও ছোট করতে পারেন:

যদি "a" = অক্ষরের 1 (স্ট্রিং হিসাবে x) থাকে তবে {সত্য, সত্য return

প্রতি

যদি "a" = অক্ষরের 1 (স্ট্রিং হিসাবে x) থাকে তবে {সত্য, সত্য return

এটি আপনার জন্য বন্ধনীও স্থান করে দেবে। এই উদাহরণে, আমি 5 বাইট সংরক্ষণ করি।


2

বিবেচনা করা...

যেসব প্রশ্নের ক্ষেত্রে কেস সংবেদনশীলতা প্রয়োজন, সে ক্ষেত্রে আসলে মামলাগুলি মোকাবেলা করা কঠিন হতে পারে।

এখন পর্যন্ত:

মামলা বিবেচনা
    (কেস সংবেদনশীল স্টাফ সঙ্গে কিছু করার জন্য)
বিবেচনা শেষ

আমি আসলে এই কীওয়ার্ডটি জানতাম না যতক্ষণ না আমার সত্যি এটির প্রয়োজন হয়। এই টিপস পৃষ্ঠায় অন্যান্য টিপস ব্যবহার করে, আমরা এটিকে এখানে কমিয়ে আনতে পারি:

মামলা বিবেচনা
(কেস সংবেদনশীল স্টাফ সঙ্গে কিছু করার জন্য)
শেষ

যতদূর আমি জানি এটির জন্য একটি পূর্ণ বিবৃতি প্রয়োজন। (আমি অনেক কিছুই চেষ্টা করেছি।) আরও বিশদ জানতে এই পৃষ্ঠাটি দেখুন ।


1

কয়েকটি ব্যতিক্রমী ক্ষেত্রে, «ডাবল এঙ্গেল বন্ধনী» বা «ডাবল শেভরন» একটি কমান্ড, প্যারামিটার বা ধ্রুবকের ইংরেজি নামের চেয়ে কম হতে পারে।

শেভ্রন-এনকোডযুক্ত ফর্মটি 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 বাইট হিসাবে গণ্য হয়।

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