その他の演算子
( )
(括弧) 演算子
動作: 括弧を使用して、式内の操作が実行される順序を制御します。括弧が使用されていない場合に操作が実行される順序を理解するために、演算子の優先順位をご覧ください。疑問がある場合は、括弧を使用して操作が望ましい順序で実行されるようにします。また、詳細については 括弧の使用法をご覧ください。
構文:
( expression )
例:
put 2 * (height + width) into perimeter
AsList
関数
動作: asList
関数は、オブジェクト(プロパティリスト)をパラメータとして呼び出されます。最初に、オブジェクトが asList
プロパティを持っているかどうかを確認します。もしそうなら、その値が返されます。そうでなく、オブジェクトが asListExpression
プロパティを持 っている場合は、そのプロパティの値が式として評価され(value()
関数を呼び出すのと同等)、リスト値が得られます。オブジェクトがこれらのプロパティのいずれも持っていない場合、asList
関数メッセージがオブジェクトとそのヘルパーに専用で送信され、その返り値が使用されます。
ターゲットがオブジェクトでない(または asList
または asListExpression
プロパティまたは asList
関数ハンドラを持っていない)場合、またはすでにリストでない場合、ターゲットの文字列値が式として評価され(value()
関数を呼び出すのと同等)、リスト値が得られます。
構文:
{the} average of numList
asList( expr )
例:
put file "scores" as a list into testScores
関連項目:
Is A
, Is Not A
, Isn't A
, Is All
, Is Not All
, Isn't All
演算子
動作: 値が特定のタイプとして有効であるかどうかを確認するか、値の内容を分析します。 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 | 数 |
object propertyList | オブジェクトまたはプロパティリスト |
odd number | 2で均等に割り切れない全体の数 |
パターン | SenseTalkのパターン言語を使用したパターン定義 |
point | 2つの数のリスト、またはカンマで区切られた2つの数 |
positive integer | ゼロより大きい全体の数 |
positive number | ゼロより大きい数 |
range | 範囲 |
rectangle rect | 4つの数のリスト、2つのポイントのリスト、またはカンマで区切られた4つの数 |
reference | 他のコンテナへの参照 |
tree | 木 |
次の識別子は、テキスト値の文字のタイプをテストするために使用できます:
識別子 | テストする値のすべての文字が真のとき |
---|---|
alphanumeric | 文字または数字 |
blankOrReturn whitespaceOrReturn | スペース、タブ、またはリターン |
blank whitespace | スペースまたはタブ |
controlChar controlChars | リターン、タブ、フォームフィードなどの非表示の制御文字 |
stkconversion-of-values.md | |
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
演算子
動作: ファイル、フォルダ、変数、オブジェクト、またはオブジェクトプロパティの存在をテストします。変数の場合、この演算子は変数に値が割り当てられていれば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
例:
もしフォルダ "BankReport" が存在するなら ...
例:
もしファイル "secretpasswords" が存在しないなら ...
例:
もしオブジェクト "printHelper" が存在しないなら ...
例:
もしプロパティcostがmaterialに存在するなら ...
例:
もし変数controllerが存在するなら ...
例:
もしファイル "answers" が存在し ないなら、ファイル "answers" を作成する
例:
もしプロパティsequenceがpartに存在するなら、partのsequenceに1を加える
Is Within
, Is Not Within
, Isn't Within
演 算子
動作: ポイントが長方形の中にあるかどうか、長方形が別の長方形に完全に含まれているかどうか、あるいは値が特定の範囲内にあるかどうかをテストします。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
例:
もしmousePointがwindowBorderの中にあるなら ...
例:
もしlastLoc + (12,8)が(10,10,90,50)の中にあるなら ...
例:
もしwindowRectがscreenRectの中にないなら ...
例:
もしdayが1 .. lastValidDayの中にあるなら ...
&&&
リスト結合演算子
挙動: 二つのリストまたは値を一つの値のリストに結合します。この操作の結果は、操作数の一つが空であっても常にリストになります。
構文:
operand1 &&& operand2
例:
put [1,2,3] &&& [4,5] into oneList -- [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-- [12,42]
Joined By
, Split By
演算子
挙動: 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
Example:
set newPath to components combined using "/"
例:
put {a:1, b:2} joined with ";" and "=" -- "a=1;b=2"