回答:
of
オペレータは、オブジェクトのプロパティを取得するために使用されます。
log words of "Hello World"
しかし、多くの場合's
、1文字を保存するためのショートカットとして使用できます。
log "Hello World"'s words
Applescript Editorは、コードを構文強調表示して美しくする便利な小さなIDEです。ただし、ゴルフの目的のためには、インデントや余分なキーワードを追加するなど、逆効果end
です。例えば:
repeat with w in "Hello World"'s words
log w
end
Applescript Editorに貼り付けてコンパイル/実行すると、次のようになります。
repeat with w in "Hello World"'s words
log w
end repeat
明らかに、最初のスニペットはゴルフの目的に適しています。
end
Applescript固有のことだと思いますが。
end
ますが、複数のネストされたブロックがある場合どのブロック開始ステートメントに属している
tell
Applescriptではブロックが一般的です:
tell application "TextEdit"
activate
end tell
ただし、スペースを節約するために、tell
ブロックの内部が1行だけの場合、次のコードは同等です。
tell application "TextEdit" to activate
tell app "TextEdit" to activate
。
何かをするために引用を必要とする操作、すなわち
ログ「Hello World!」
短縮できます
ログ「Hello World!」
繰り返しループでは、単語「times」を完全に削除できます。
x回繰り返す 終わり
対
xを繰り返す 終わり
これらの演算子が呼び出されるたびに、それぞれ≤
と≥
に置き換えることができます。(特別なバイトカウント規則が実装されていない限り、私が提案した、)これは、バイト数を減らすことではないかもしれないが、それはない文字カウントを減らします。
次の文字を使用して、STDINから取得できます。
実行時にargv 終わり
コードをすばやく終了する必要がある場合(何らかの理由で、つまり過度if
のsを防ぐため)...
終了する
引用に関する投稿と同様に、後で次のように短縮することもできることに気付きました。
「a」=(文字列としてx)の文字1の場合、{true、true}を返します
に
if "a" =(文字列としてx)の1番目の文字。次に{true、true}を返す
角かっこも外します。この例では、5バイトを節約します。
大文字と小文字の区別が必要な質問では、実際にケースに対処するのが難しい場合があります。
検討ケース (大文字と小文字を区別するものと関係がある) 検討終了
本当に必要になるまで、私は実際にこのキーワードを知りませんでした。このヒントページの他のヒントを使用して、これを次のように減らすことができます。
検討ケース (大文字と小文字を区別するものと関係がある) 終わり
いくつかの例外的なケースでは、«二重山括弧»または«二重山形»は、コマンド、パラメーター、または定数の英語名よりも短い場合があります。
シェブロンエンコードフォームは、AppleScriptを縮小してクリップボードを20文字から16文字に削除します。
set the clipboard to -- 20
«event JonspClp» -- 16
ダイアログからテキストを取得するときに2文字をドロップします(メトロノームとPi Dayで発生します):
(display dialog""default answer"")'s text returned -- 46
(display dialog""default answer"")'s«class ttxt» -- 44
(少なくともMac OS X 10.4 を使用している場合は、ダイアログを避け、osascript(1)のコマンドライン引数を使用することをお勧めします。)
USキーボードの場合、«はoption- \で、»はoption-shift- \です。コマンド«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)から(16)への変更«event rdwropen»
は中立でした。write permission_
(17)をgiven«class perm»:
(18)に変更すると、1文字かかります。他の二重山形ブラケットはより高価です。
ダブル山括弧を使用するには、魔法の4文字または8文字のコードを知っている必要があります。スクリプトエディターからスクリプトファイルを保存し、16進エディターで開いていくつかのコードを見つけました。emacs
ターミナルで走って使ったM-x hexl-find-file
。JonspClp
into JanspClp
やttxt
into などのコードを見つけて編集しましたatxt
。次に、ファイルを保存し、スクリプトエディターで再度開きました。«event JanspClp»
そして«class atxt»
スクリプトに登場。
AppleScriptの用語とAppleイベントコードリファレンスというタイトルのドキュメントに、いくつかのコードがリストされています。https://applescriptlibrary.wordpress.com/でコピーを見つけました
スクリプトエディターは、スクリプトを保存する前に二重山括弧を英語に変換します。シェブロンに敬意を払うには、TextEditのような別のテキストエディターでスクリプトを記述する必要があります。Mac OS Roman(またはMacRoman)エンコーディングのプレーンテキストファイルとしてスクリプトを保存します。Mac OS Xでは、ファイルに.applescriptサフィックスを付けることをお勧めします。
バイトをカウントする場合、MacRomanは文字ごとに1バイトを持っているため、«または»はそれぞれ1バイトとしてカウントされます。