その他の演算子
( ) (括弧) 演算子
Behavior: 括弧を使用して、式内の操作が実行される順序を制御します。括弧が使用されていない場合に操作が実行される順序を理解するために、演算子の優先順位をご覧ください。疑問がある場合は、括弧を使用して操作が望ましい順序で実行されるようにします。また、詳細については 括弧の使用法をご覧ください。
構文:
( expression )
例:
put 2 * (height + width) into perimeter
AsList 関数
Behavior: asList 関数は、オブジェクト(プロパティリスト)をパラメータとして呼び出されます。最初に、オブジェクトが asList プロパティを持っているかどうかを確認します。もしそうなら、その値が返されます。そうでなく、オブジェクトが asListExpression プロパティを持っている場合は、そのプロパティの値が式として評価され(value() 関数を呼び出すのと同等)、リスト値が得られます。オブジェクトがこれらのプロパティのいずれも持っていない場合、asList 関数メッセージがオブジェクトとそのヘルパーに専用で送信され、その返り値が使用されます。
ターゲットがオブジェクトでない(または asList または asListExpression プロパティまたは asList 関数ハンドラを持っていない)場合、またはすでにリストでない場合、ターゲットの文字列値が式として評価され(value() 関数を呼び出すのと同等)、リスト値が得られます。
構文:
{the} average of numList
asList( expr )
例:
put 23 as a list into mylist
put myList --> [23]
insert 24 after mylist
put mylist --> [23,24]
関連項目:
Is A, Is Not A, Isn't A, Is All, Is Not All, Isn't All 演算子
Behavior: 値が特定のタイプとして有効であるかどうかを確認するか、値の内容を分析します。 number, integer, even number, odd number, positive number, negative number, positive integer, negative integer, point, rectangle, date, time, Booleanであるかどうかをテストできます。 list, range, iterator, file, folder, tree, objectであるかどうかを確認するために変数をテストできます。また、値内の文字またはすべての文字が digits, letters, alphanumeric, uppercase, lowercase, punctuation, blank (または whitespace), blankOrReturn (または whitespaceOrReturn), controlCharsであるかどうかをテストできます。値が他のコンテナへの参照であるかどうかを確認するために、それが referenceであるかどうかをテストできます。また、オブジェクトが objectType プロパティを定義している場合、 is a 演算子はカスタムオブジェクトタイプのテストにも使用できます(特殊プロパティの ObjectType プロパティを参照)。
構文:
valueToTest is {not} a typeIdentifier
valueToTest is {not} all typeIdentifier
例: 次の表現はすべて "true" を返します:
put pi is a number
put pi is not an integer
put -12 is an even number
put 5683 is an odd number
put 98.6 is a positive number
put 0 isn't a positive number
put -13.2 is a negative number
put 144 is a positive integer
put -1 is a negative integer
put "123, 12.5" is a point
put "123, 12.5, 245, 25" is a rectangle
put (snow is greater than rain) is a boolean
put (a,b,c) is a list
put 14..94 is a range
put (a,b,c) is an iterator
put "July 4, 1776" is a date
put "/System/Library/Fonts/Courier.dfont" is a file
put "/System" is a folder
put (partnum:"4X56N32", qty:14) is an object
put 6 is a digit
put character 2 of "4X56N32" is a letter
put "J946Ux" is an alphanumeric
put "a" is a lowercase
put "ABCdef" isn't all uppercase
put "(),.;:!?[]{}%\’/" is all punctuation
put space is a blank
put space & tab & return is all blankOrReturn
put tab is a controlChar
put @foo is a reference
put radius:23, objectType:("Shape", "Circle") is a "Circle"
put <"[", character, "]"> is a pattern
typeIdentifier が以下に列挙された有効な識別子のいずれか、またはこれらの組み込み識別子のいずれかに評価される式でない場合、または valueToTest がオブジェクトまたはプロパティリストでない場合、エラーが発生します。
valueToTest がオブジェクトの場合、 is a 演算子は typeIdentifier をパラメータとしてオブジェクトに isObjectType 関数メッセージを送信して返された値に評価されます。この関数のデフォルトの実装は、オブジェクトの objectType プロパティが typeIdentifier を含むかどうかをチェックします。プロパティリストに objectType プロパティがある場合、それは単一の値または値のリストであるかもしれません。 typeIdentifier が objectType リスト内の任意の項目と等しい場合、 is a 演算子は真に評価され、それ以外の場合は偽に評価されます。
| 識別子 | テストする値が真のとき |
|---|---|
Boolean logical | "true" または "false", "yes" または "no", "on" または "off" |
date time | 日付または時間の値に変換できる単一の数値以外の値 |
even number | 2で割り切れる整数 |
file | フォルダではない存在するファイルのファイルオブジェクトまたはファイル名 |
folder directory | 存在するフォルダのファイルオブジェクトまたはファイル名、ただしプレインファイルではない |
integer int | 分数部分のない "全体" の数 |
iterator | リストや範囲など、反復可能な値 |
list | リスト |
negative integer | ゼロ未満の全体の数 |
negative number | ゼロ未満の数 |
number | 数 |
objectpropertyList | オブジェクトまたはプロパティリスト |
odd number | 2で均等に割り切れない全体の数 |
パターン | SenseTalkのパターン言語を使用したパターン定義 |
point | 2つの数のリスト、またはカンマで区切られた2つの数 |
positive integer | ゼロより大きい全体の数 |
positive number | ゼロより大きい数 |
range | 範囲 |
rectangle rect | 4つの数のリスト、2つのポイントのリスト、またはカンマで区切られた4つの数 |
reference | 他のコンテナへ の参照 |
tree | 木 |
次の識別子は、テキスト値の文字のタイプをテストするために使用できます:
| 識別子 | テストする値のすべての文字が真のとき |
|---|---|
alphanumeric | 文字または数字 |
blankOrReturnwhitespaceOrReturn | スペース、タブ、またはリターン |
blankwhitespace | スペースまたはタブ |
controlCharcontrolChars | リターン、タブ、フォームフィードなどの非表示の制御文字 |
digit digits | 数字: 0,1,2,3,4,5,6,7,8,または9 |
letter letters | 大文字または小文字のアルファベット |
punctuation | , . ! ? ; : などの句読点文字 |
lowercase | 小文字のアルファベット |
uppercase | 大文字のアルファベット |
There Is, There Is Not A, There Isn't A, There Is No, Exists, Does Not Exist, Doesn't Exist 演算子
Behavior: ファイル、フォルダ、変数、オブジェクト、またはオブジェクトプロパティの存在をテストします。変数の場合、この演算子は変数に値が割り当てられていればtrueを返します。
構文:
there is a 存在するかもしれないもの
there is not a 存在するかもしれないもの
there isn't a 存在するかもしれないもの
there is no 存在するかもしれないもの
存在するかもしれないもの exists
存在するかもしれないもの does not exist
存在するかもしれないもの doesn't exist存在するかもしれないもの の一例は以下の通り:
file fileName
folder folderName
object objectIdentifier
property propertyName of _someObject
variable localOrDeclaredVariableName
global globalVariableName
universal universalVariableName
例:
if there is a folder "BankReport" then ...
例:
if there is no file "secretpasswords" then ...
例:
if there is not an object "printHelper" then ...
例:
if there is a property cost of material then ...
例:
if there is a variable controller then ...
例:
if file "answers" doesn't exist then create file "answers"
例:
if property sequence of part exists then add 1 to part's sequence
Is Within, Is Not Within, Isn't Within 演算子
Behavior: ポイントが長方形の中にあるかどうか、長方形が別の長方形に完全に含まれているかどうか、あるいは値が特定の範囲内にあるかどうかをテストします。is within演算子のすべての形式は、包含長方形または範囲のエッジまたはエンドポイントを含めて包含をテストします。したがって、たとえば 9 is within 5..9 はtrueと評価されます。
ポイントは常に、ポイントのx座標とy座標を表す数のペアとして指定されます。通常、これらの2つの値は(12,42)のような2つのアイテムのリストとして与えられますが、"12,42"のように2つの数をカンマで区切ったテキスト文字列も使用できます。
長方形は4つの数字で指定され、長方形の左、上、右、下の位置を表します。例えば(5,18,105,118) - この長方形は実際には正方形で、幅と高さは共に100です。また、4つの数字を2つのポイント、つまり長方形の対角線上のポイントを説明するものと考えることもできます。長方形はまた、2つのポイントのリストとして指定することもできます。
構文:
point is {not} within rectangle
rectangle1 is {not} within rectangle2
value is {not} within range
例:
if mousePoint is within windowBorder then ...
例:
if lastLoc + [12,8] is within [10,10,90,50] then ...
例:
if windowRect is not within screenRect then ...
例:
if day is within 1 .. lastValidDay then ...
&&& リスト結合演算子
Behavior: 二つのリストまたは値を一つの値のリストに結合します。この操作の結果は、操作数の一つが空であっても常にリストになります。
構文:
operand1 &&& operand2
例:
put [1,2,3] &&& [4,5] into oneList -- results in [1,2,3,4,5]
例:
put oneList &&& 6 --> [1,2,3,4,5,6]
例:
put 0 &&& oneList --> [0,1,2,3,4,5]
例:
put 12 &&& 42 into luckyList -- results in [12,42]
Joined By, Split By 演算子
Behavior: joined by演算子はリストまたはプロパティリストの要素をテキスト文字列に結合します。split by演算子は逆の操作を行い、テキスト文字列を取り、それからリストまたはプロパティリストを生成します。combinedはjoinedの代わりに、withまたはusingはbyの代わりにどちらの演算子でも使用できます。
プロパティリストを扱うときは、二つのセパレーターを使用するべきです。最初のセパレーターは要素間のテキストセパレーターを示し、二番目のセパレーターは各キーとそれに対応する値間のテキストセパレーターを指定します。リストを分割または結合するためには、単一のセパレーターだけが必要です。
構文:
sourceStructure [joined | combined] [by | with | using] separator1 {and separator2}
sourceText split [by | with | using] separator1 {and separator2}
例:
put path split by "/" into components
例:
set newPath to components combined using "/"