SenseTalkでの値
コンピュータは数値、テキスト、音声、画像を含むさまざまなデータ値を扱います。SenseTalkで最も多く取り扱う値は数値とテキストです。これらの値をさまざまな方法で組み合わせて整理する能力も重要です。SenseTalkのリストとプロパティリストを使用すると、これを実現できます。
数値
SenseTalkでの数値は、数字を使用して表記することができます:
1
634
12.908
-3
.5
18.75
または単語で:
one
six hundred thirty-four
twelve point nine zero eight
negative three
one half
eighteen and three quarters
数値で桁を区切るためのカンマを使用することはできません。なぜなら、カンマはSenseTalkで他の意味を持っているからです。たとえば、リスト内の項目を区切るなどです。ただし、大きな数値を見やすくするために数値内でアンダースコア(_)を使用することは可能です(SenseTalkによってアンダースコアは単純に無視されます)。したがって、「130万」は単語で書き出すか、1_300_000として書くことができますが、1,300,000として書くことはできません。(リストについての詳細は、以下のリストを参照してください。)
技術的な用途のため、以下の記法も受け入れられます:
- 科学的表記法("e+"または"e-"の後に10のべき乗が続く)
- 16進数、8進数、2進数表記("0x"、"0o"、"0b"で始まる)。
4.58e+6
0x8ce3
0o377
0b10011010
また、長さや距離、重さ、角度などの数値に単位を使用することもできます:
100 yards
5 pounds
12 minutes
単位についての詳細な議論については、単位を使用した数値を参照してください。
序数の数字
序数は、何かの順序や位置を示す数字です。SenseTalkでは、序数はチャンク式内で使用され、値の特定のチャンクを参照するために使われます。
序数は、数字の後に序数の接尾辞(st、nd、rd、またはth)が続く形で表されます:
1st
, 2nd
, 3rd
, 4th
, 5th
, … , 10th
, … , 31st
, … , 99th
, 100th
, 101st
, 102nd
, … , 2023rd
, …
序数は、単語で表現することもできます:
first
, second
, third
, … , twelfth
, thirteenth
, … , twenty-first
, twenty-second
, … , ninety-ninth
, hundredth
, one hundred first
, ... , two hundredth
, … , nine hundred ninety-ninth
, one thousandth
, one thousand first
, … , millionth
チャンク式では、序数はシーケンスの末尾からの逆順のカウントにも使用できます(ただし、これらの式にはダッシュが必要です):
second-to-last
, fourth-from-end
, 16th-to-final
文法:
{the} ordinal { - [to | from] - [last | end | ultimate | final] }
テキスト
SenseTalkのテキストは通常、直線の二重引用符で囲まれます:
"abc"
"The Lord of the Rings"
"Greetings, and welcome to the world of computing!"
完全な国際化(Unicode)テキストがサポートされています。ただし、引用符で囲まれたテキスト文字列で表現するのが難しい文字がいくつかあります。特に、二重引用符自体は引用符の間に使用することはできません。そうすれば、コンピュータが混乱する可能性があります。そのため、SenseTalkはquote
という特別な単語を提供してい ます。それはその文字を表現します。以下のように使用できます:
"John said " & quote & "Hello!" & quote
アンパサンド(&
)はテキストを連結し、それを単一のより長い文字列に結合します。したがって、上記の表現は次のテキストを結果として出力します:
John said "Hello!"
引用符で囲まれたテキストに直接含めることができない別の一般的な文字は、テキストの次の行とを分離するために使用されるリターン文字です。SenseTalkでは、return
という単語がリターン文字を表します:
"This is line 1." & return & "This is line 2."
これらの文字をテキストに含める別の方法は、特別な二重角括弧<<
と>>
を使用することです。これらの括弧を二重引用符の代わりに使用すると、引用符とリターン文字を直接含めることができます:
<<John said "Hello!"
This is line 2. >>
あなたのキーボードでそれらを生成する方法を知っている場合は、「カーリー」引用符も使用できます。それらは常にテキストの始まりで左の引用符と、終わりで右の引用符とペアになっている必要があります:
“John said "Hello!"”
複数行のテキストブロック
何行にもわたる大きなテキストブロックをスクリプトに組み込む必要がある場合は、二重中括弧 \{\{ }}
を使用する特別なメカニズムを使用できます。
このタイプのブロッククォートは、二重山括弧 << >> とは異なります。引用符で囲まれたコンテンツは、左二重中括弧 \{\{
の次の行まで始まらず、右二重中括弧 }}
の前の行で終わります。
put {{
This is my "quoted" text.
}} into statement
-- Statement now contains 'This is my "quoted" text.'
開始する二重波括弧に続くリターンも、終了する二重波括弧の前のリターンも引用内容の一部として扱われないので、引用内容の始まりや終わりにリターン文字を含める必要がある場合は、空行を挿入しなければなりません。
この波括弧引用符は、スクリプト内に大きな引用テキストブロックを簡単に含めるために意図されています。終了する波括弧は行の始まりでしか認識されないため、二重波括弧は引用される内容の他の場所にも現れることがあります。さらに広範な内容を引用するために、開始する波括弧には識別子を続けることができます。同じ識別子(大文字と小文字を区別する)が引用内容を終了させるために終了する波括弧の直前に来なければなりません。識別子には波括弧以外の非空白文字を含めることができます。異なる識別子を使用することで、一つの引用テキストブロックを別の中にネストすることが可能になります。
set the script of Talker to {{TalkerScript
on speakUp
put {{InnerQuote
This is my "quoted" text, and I am prepared to use it.InnerQuote}} into my statement
InnerQuote}} into my statement
put statement
end speakUp
TalkerScript}}
論理(ブール)値
論理値(ブール値とも呼ばれます)は、何かが真または偽、はいまたはいいえ、オンまたはオフであるかを表現します。SenseTalkでは、これらの論理値は定数 true
と false
で表されます。
また、真または偽に評価するいくつかの演算子と式があります(Expressionsを参照してください)。論理値は、if...then...else
構造体に含まれる特定のコマンドを実行するかどうかを選択するために使用されます(Conditional Statementsを参照)。
if
ステートメントで条件をテストするとき、SenseTalkは true
または false
だけでなく "yes", "no", "on", "off", ""(空)と評価する任意の式も受け入れます。 "true", "yes", "on" の値はすべて真として扱われ、"false", "no", "off", "" は偽として扱われます(これらは大文字小文字を区別せず、大文字、小文字、または混合文字で有効です)。それ以外の値は、論理値が必要な文脈で使用されると例外をスローします。
定数と事前定義された変数
true
や return
のような、変更できない事前定義された値を持つ単語を 定数 と呼びます。SenseTalkには5つの真の定数 (empty
、return
、true
、false
、および end
) だけがあります。さらに、大量の 事前定義された変数 があります。これらは事前に定義された値を持つ単語で、変数として使用することも、スクリプトでその値を変更することもできます。詳細は SenseTalkの制約付き語 を参照してください。
事前定義された値を持つSenseTalkの一部の単語は以下の通りです:
単語 | 事前定義された値 |
---|---|
empty | 空文字列。これはテキストリテラルの "" と同じです。 |
return | "改行"文字。これは、キーボードの "Return" キーを押したときに複数行フィールドに入力される同じ文字です。 |
carriageReturn creturn cr | "キャリッジリターン"文字。これは numToChar(13) と同じです。 |
linefeed lf newline | ラインフィード文字。これは return または numToChar(10) と同じです。 |
crlf | キャリッジリターンに続くラインフィード。これは numToChar(13) & numToChar(10) と同じです。 |
lineSeparator | ユニコードラインセパレータ文字、これは numToChar(0x2028) と等しい。 |
paragraphSeparator | ユニコード段落セパレータ文字、これは numToChar(0x2029) と等しい。 |
quote | 直線のダブルクォート文字(")。 |
tab | タブ文字。これは、"Tab"キーを押したときにフィールドに入力される同じ文字です。タブは numToChar(9) と同じです。 |
space | 単一のスペース文字(" ")。 |
comma | コンマ(",")。 |
slash | A forward slash ("/"). |
backslash | A backward-leaning slash ("\"). |
colon | A colon (":"). |
formfeed | フォームフィード文字。これは numToChar(12) と同じです。 |
nullChar | ヌル文字。これは numToChar(0) と同じです。 |
nil null | 例えば、データベースのnull値を表現するためにSenseTalkで使用される値など、欠落した値に相当します。 |
pi | 円に関連する計算で使用される数学的な値π。SenseTalkでは、pi は値3.14159265358979323846を持ちます。 |
LightSpeed | 光の速度、299,792,458メートル/秒に等しい。 |
googol | 10の100乗に相当します。 |
true | "True"という単語で、SenseTalkでは論理値TRUEを持ちます。 |
false | "False"という単語で、SenseTalkでは論理値FALSEを持ちます。 |
yes | "Yes"という単語で、SenseTalkでは論理値TRUEを持ちます。 |
no | "No"という単語で、SenseTalkでは論理値FALSEを持ちます。 |
on | "On"という単語で、SenseTalkでは論理値TRUEを持ちます。 |
off | "Off"という単語で、SenseTalkでは論理値FALSEを持ちます。 |
end | イテレータがこれ以上の値を利用できないときに返される the endValue グローバルプロパティの値(デフォルト値は " ⓔ ⓝ ⓓ ")。 |
zero , one , two , ... | ゼロ、ワン、ツー、スリーなどの単語は、対応する数値として事前定義されています(上記の数値を参照)。 |
today | 現在の日付、国際日付形式で。 |
now | 現在の時間、省略形の国際時間形式で。 |
date | 現在の日付、 date 関数と同じ形式で。 |
time | 現在の時間、 time 関数と同じ形式で。 |
上記の単語の中には、 empty
、 return
、 true
、 false
、および end
を含む真の定数があります。他の単語は事前定義された変数で、スクリプトによって他の値を格納することができます。
SenseTalkのテキストはCocoaおよびUnixの標準に基づいているため、return
定数は実際には改行文字であり、キャリッジリターン文字ではなく、numToChar(10)
と等価です。シリアルポートに接続されたデバイスにテキストを書き込むなど、実際のキャリッジリターン文字が必要な場合は、carriageReturn
、creturn
、またはcr
を使用すべきであり、これはnumToChar(13)
と等価です。
カスタム事前定義変数
上記でリストした事前定義変数に加えて、SenseTalkは起動時に他の変数定義を自動的にロードし、ニーズに合わせてカスタマイズできます。これらの定義は、ホストアプリケーションによってロードされたSenseTalkEngineフレームワークまたはその他のバンドル内のリソースフォルダにある".predef"拡張子のファイルに含まれています。
この拡張子を持つファイルは、アーカイブされたプロパティリストを含むプレーンテキストファイルであるべきです。SenseTalkのvalue()関数は各プロパティリストを読み取り、そのキーと値をSenseTalkエンジンに事前定義変数として登録します。
2つのリソースが同じ事前定義変数名の値を提供している場合、最後にロードされた値がその変数に使用される値になります。ロードされる値はSenseTalkの式であるため、すでに定義された値の存在をチェックする式を含めることが可能であり、それをそのまま使用した り、新しい値に組み込むことが可能です。
提供される事前定義変数
SenseTalkには、いくつかの追加の事前定義変数のセットがインストールされており、これらは多くの便利な文字やシンボルの名前を提供します。これらのシンボルのすべてがすべてのフォントで利用可能なわけではありませんが、これらはすべて有用な可能性がある標準的なUnicode文字です。例えば:
put copyrightSign && "2008"-- © 2008
提供されるシンボルには以下のものがあります:
一般的なシンボル
period (.), fullStop (.), semicolon (;), questionMark (?), exclamationMark (!), numberSign (#), ellipsis (…), circumflexAccent (^), ampersand (&), asterisk (*), leftParenthesis ((), rightParenthesis ()), leftSquareBracket ([), rightSquareBracket (]), leftCurlyBracket ({), rightCurlyBracket (}), underscore (_), apostrophe ('), singleQuote ('), tilde (~), graveAccent (`), hyphen (‐), nonBreakingHyphen (-), figureDash (‒), enDash (–), emDash (—), dagger (†), doubleDagger (‡), bullet (•), triangularBullet (‣), nonBreakingSpace (), atSign (@), careOfSign (℅), serviceMarkSign (℠), telephoneSign (℡), tradeMarkSign (™), facsimileSign (℻), numeroSign (№), invertedExclamationMark (¡), invertedQuestionMark (¿), verticalBar (|), brokenBar (¦), sectionSign (§), copyrightSign (©), registeredSign (®), pilcrowSign or paragraphSign (¶), middleDot (·), cedilla (¸), leftDoubleAngleQuotationMark («), rightDoubleAngleQuotationMark (»), checkMark (✓), blackDiamond (◆), lowerLeftPencil (), helmSymbol (⎈), caretSign (‸), referenceMark (※), doubleExclamationMark (‼), doubleQuestionMark (⁇), heavyCheckMark(✔), xMark(✗), heavyXMark(✘)
通貨記号
centSign (¢), poundSign (£), currencySign (¤), yenSign (¥), euroSign (€), dollarSign ($), australSign (₳), cediSign (₵), colonSign (₡), cruzeiroSign (₢), dongSign (₫), drachmaSign (₯), euroCurrencySign (₠), frenchFrancSign (₣), germanPennySign (₰), guaraniSign (₲), hryvniaSign (₴), indianRupeeSign (₹), kipSign (₭), lariSign (₾), liraSign (₤), livreTournoisSign (₶), manatSign (₼), millSign (₥), nairaSign (₦), newSheqelSign (₪), nordicMarkSign (₻), pesetaSign (₧), pesoSign (₱), rupeeSign (₨), russianRubleSign (₽), spesmiloSign (₷), tengeSign (₸), tugrikSign (₮), turkishLiraSign (₺), wonSign (₩)
数値と数学の記号
lessThanSign (<), greaterThanSign (>), equalsSign (=), percentSign (%), perMilleSign (‰), perTenThousandSign (‱), degreeSign (°), superscriptOne (¹), superscriptTwo (²), superscriptThree (³), microSign (µ), plusSign (+), minusSign (−), multiplicationSign (×), divisionSign (÷), plusOrMinusSign (±), minusOrPlusSign (∓), squareRootSign (√), cubeRootSign (∛), infinitySign (∞), notSign (¬), equalSign (=), almostEqualSign (≈), approximatelyEqualSign (≅), notEqualSign (≠), lessThanOrEqualSign (≤), greaterThanOrEqualSign (≥), fractionOneQuarter (¼), fractionOneHalf (½), fractionThreeQuarters (¾), fractionFiveEighths (⅝), fractionFiveSixths (⅚), fractionFourFifths (⅘), fractionOneEighth (⅛), fractionOneFifth (⅕), fractionOneFourth (¼), fractionOneNinth (⅑), fractionOneSeventh (⅐), fractionOneSixth (⅙), fractionOneTenth (⅒), fractionOneThird (⅓), fractionSevenEighths (⅞), fractionThreeEighths (⅜), fractionThreeFifths (⅗), fractionThreeFourths (¾), fractionTwoFifths (⅖), fractionTwoThirds (⅔), fractionZeroThirds (↉)
キーボードの記号
commandKeySymbol (⌘), optionKeySymbol (⌥), controlKeySymbol (⌃), shiftKeySymbol (⇧), eraseRightKeySymbol (⌦), eraseLeftKeySymbol (⌫), escapeKeySymbol (⎋), returnKeySymbol (⏎), ejectKeySymbol (⏏), appleLogo (), alternativeKeySymbol (⎇), blankKeySymbol ( ␣ ), capsLockKeySymbol (⇪), clearKeySymbol (⌧), pageUpKeySymbol (⇞), pageDownKeySymbol (⇟), tabKeySymbol (⇥), tabLeftKeySymbol (⇤), returnLeftKeySymbol(↩), returnRightKeySymbol (↪), leftArrowSymbol (←), rightArrowSymbol (→), upArrowSymbol (↑), downArrowSymbol (↓), contextualMenuKeySymbol ()
その他の記号
whiteDiamond (◇), fisheye (◉), blackCircle (●), whiteCircle (○), largeCircle (◯), dottedCircle (◌), bullseye (◎), whiteBullet (◦), blackSun (☀), whiteSun (☼), cloud (☁), umbrella (☂), umbrellaWithRainDrops (☔), snowman (☃), cometSymbol (☄), blackStar (★), whiteStar (☆), lightningSymbol (☇), thunderstormSymbol (☈), sunSymbol (☉), blackTelephone (☎), whiteTelephone (☏), hotBeverage (☕), shamrock (☘), skullAndCrossbones (☠), cautionSign (☡), radioactiveSign (☢), biohazardSign (☣), caduceus (☤), ankh (☥), peaceSymbol (☮), yinYang (☯), firstQuarterMoon (☽), lastQuarterMoon (☾), femaleSign (♀), maleSign (♂), snowflake (❄), hotSprings (♨), whiteFlag (⚐), blackFlag (⚑), heavyBlackHeart (❤), blackSpadeSuit (♠), blackHeartSuit (♥), blackDiamondSuit (♦), blackClubSuit (♣), whiteSpadeSuit (♤), whiteHeartSuit (♡), whiteDiamondSuit (♢), whiteClubSuit (♧), recyclingSymbol (♲), blackRecyclingSymbol (♻), whiteSmilingFace (☺), blackSmilingFace (☻), whiteFrowningFace (☹), adiShakti (☬), AprilFoolsDay ("4月1日"), blackChessBishop (♝), blackChessKing (♚), blackChessKnight (♞), blackChessPawn (♟), blackChessQueen (♛), blackChessRook (♜), blackHandPointingLeft (☚), blackHandPointingRight (☛), boxListFormat {prefix:"【", quotes:"None", separator:"】 【", suffix:"】"}
, chiRho (☧), Christmas ("12月25日"), ChristmasEve ("12月24日"), crossOfJerusalem (☩), crossOfLorraine (☨), digramForGreaterYang (⚌), digramForGreaterYin (⚏), digramForLesserYang (⚎), digramForLesserYin (⚍), earthSymbol (♁), farsiSymbol (☫), Halloween ("10月31日"), hammerAndSickle (☭), handPointingDown (☟), handPointingLeft (☜), handPointingRight (☞), handPointingUp (☝), jsonListFormat {indent:" ", prefix:"[", quotes:"Auto", separator:",", suffix:"]"}
, jsonPropertyListFormat {asTextEnabled:"Yes", emptyRepresentation:"{}", entrySeparator:", ", indent:" ", keySeparator:":", prefix:"{", quotes:"Auto", suffix:"}"}
, jupiterSymbol (♃), LightSpeed (299792458メートル毎秒), marsSymbol (♂), mercurySymbol (☿), monogramForYang (⚊), monogramForYin (⚋), neptuneSymbol (♆), NewYearsDay ("1月1日"), NewYearsEve ("12月31日"), oldListFormat {prefix:"(", quotes:"None", separator:",", suffix:")"}
, oldPropertyListFormat {asTextEnabled:"Yes", emptyRepresentation:"(:)", entrySeparator:", ", keySeparator:":", prefix:"(", quotes:"Standard", suffix:")"}
, orthodoxCross (☦), plutoSymbol (♇), powerOnOffSymbol (⏼), powerOnSymbol (⏽), powerSleepSymbol (⏾), powerSymbol (⏻), saturnSymbol (♄), standardListFormat {prefix:"[", quotes:"Auto", separator:",", suffix:"]"}
, standardPropertyListFormat {asTextEnabled:"Yes", emptyRepresentation:"{:}", entrySeparator:", ", keySeparator:":", prefix:"{", quotes:"Auto", suffix:"}"}
, starAndCrescent (☪), trigramForEarth (☷), trigramForFire (☲), trigramForHeaven (☰), trigramForLake (☱), trigramForMountain (☶), trigramForThunder (☳), trigramForWater (☵), trigramForWind (☴), uranusSymbol (♅), ValentinesDay ("2月14日"), venusSymbol (♀), wheelOfDharma (☸), whiteChessBishop (♗), whiteChessKing (♔), whiteChessKnight (♘), whiteChessPawn (♙), whiteChessQueen (♕), whiteChessRook (♖)
プリデフィン変数のグローバルプロパティ
the PredefinedVariables
のグローバルプロパティは、すべてのプリデフィン変数の定義を含むプロパティリストです。このグローバルプロパティの使用については、the predefinedVariables
を参照してください。
リスト
SenseTalkは、角括弧で囲まれ、コンマで区切られた値のリストを理解します:
[1,2,3]
["a","b","c"]
リストは他のリストを含む任意の種類の値を含めることができます:
[12.4,"green", <<John said "Hello!">>, [44,6], [55,2] ]
リスト内の項目はその位置番号でアクセスされます。最初の項目は番号1です:
item 1 of ["red", "green", "blue"] -- "red"
the third item of ["c","d","e","f","g"] -- "e"
リストは値を整理するのに非常に便利です。SenseTalkは、リストを作成し、それらを操作するための多数のコマンドと演算子を提供します(Listsを参照)。
プロパティリスト
_プロパティリスト_はリストに似ていますが、値の順序付けられたリストを含む代わりに、その値はそれぞれが名前で識別されます:
{size:12, color:blue}
{name:"Jason", age:"67", phone:"555-1234", city:"Denver"}
プロパティリストのプロパティは名前でアクセスされます:
property "width" of {shape:"oval",height:"12",width:16} -- 16
プロパティリストは実際にはオブジェクトの簡単な形式です。単純なデータコンテナとして見られるプロパティリストは、Property Listsで説明されています。オブジェクトはObjectsで詳しく説明されています。
範囲
範囲_は、開始値と終了値を使用して、数字、日付、時間、または文字の範囲を指定します:
1..200
"5月1日"から"6月30日"
"A"から"Z"
範囲は昇順または降順であることができ、ステップ値を指定することもできます:
500から200まで10ずつ下がる
開始から終了までステップごとに
範囲値は範囲として直接使用されることも、値のリストを生成するために使用されることもあります。また、リストのようにアクセスすることもできます:
put item 12 of "5月1日"から"6月30日" -- "5月12日"
範囲とその使用法は、Ranges、Iterators、およびEach Expressionsで詳しく説明されています。
特別な値
時間間隔
一部の状況では、時間間隔、つまり期間を扱うことが有用です。コマンド、関数、または他の操作が時間間隔であると期待する値が必要な場合、SenseTalkは特定の単位が指定されていない場合、期間は秒で測定されると仮定します。ただし、時間 間隔は、週、日、時間、ミリ秒など、多くの異なる単位を使用して正確に表現することもできます:
wait 5.2 -- 単位が指定されていないため、SenseTalkは5.2秒と仮定します
wait 2 minutes 12.6 seconds
if the time - startTime < 150 milliseconds then logSuccess
put the date plus one week into nextWeek
put 1 into mtimeout -- minutesの数
put 15 into stimeout-- secondsの数
wait mtimeout minutes and stimeout seconds
使用可能なcalendarDuration単位の全リストを確認するには、次のコマンドを使用します:
put (each item of the unitNames whose unitType is duration) sorted
単位の完全な説明については、Using Numbers with Unitsを参照してください。
カレンダー期間
秒単位で正確に測定できる時間間隔の期間に加えて、SenseTalkは、日付からの月、四半期、暦年、10年、100年を測定するカレンダー期間もサポートしています。カレンダー期間の単位は時間間隔とは異なるため、時間間隔と交換可能ではありませんが、どちらのタイプの期間も日付を表す値に加算または減算することができます。
カレンダー期間の単位を使用する計算は、可能な場合に月の日数を維持します。例えば、1月31日に2か月を加えると3月31日になります。1月31日に1か月を加えると、2月28日(ほとんどの年)または2月29日(うるう年)になります。これは1月31日が月の最終日であり、2月が28日または29日であるためです。
この場合、the lastDayOfMonthCalculation
グローバルプロパティ(デフォルトはtrue)がこの計算がこのように行われるかどうかを制御します。そのグローバルプロパティをfalseに設定すると、その加算は3月3日または3月2日(存在しない日付の2月31日と同等)になります。
カレンダー期間の単位は、以下のように複数の方法で表現できます:
month
,months
,calendarMonth
,calendarMonths
,calMonth
,calMonths
calendarQuarter
,calendarQuarters
,calendarQtr
,calendarQtrs
,calQuarter
,calQuarters
,calQtr
,calQtrs
year, calendarYear
,calendarYears
,calYear
,calYears
decade, calendarDecade
,calendarDecades
,calDecade
,calDecades
century, calendarCentury
,calendarCenturies
,calCentury
,calCenturies
単位の完全な説明については、Using Numbers with Unitsを参照してください。
例:
// Subtract four months from a date
set startDate to "January 31, 2018"
put startDate - 4 months into subtract4Months
put subtract4Months -- "October 1, 2017"
例:
// Add non-leap years and leap years
set startDate to "January 31, 2018"
put startDate + 1 month into nonLeapYear
put nonLeapYear -- "Feb 28, 2018"
set leapYearDate to "January 31, 2016"
put leapYearDate + 1 month into leapYear
put leapYear -- "Feb 29, 2016"
古いバージョンのEggplantFunctionalで書かれたテストには、月や四半期の計算に関する回避策が含まれている可能性があります。カレンダー期間値の追加により、それらの古いテストは異なる結果を生成する可能性があります。
バイトサイズ
ファイルやデータブロックは通常バイトで測定され、大きくなることがよくあります。これらのデータサイズを扱いやすくするため、SenseTalkでは、以下の例に示すように、bytes
, kilobytes
(または KB
), megabytes
(または MB
), gigabytes
(または GB
), terabytes
(または TB
) といった用語を自然な方法で表現することができます。
if the diskspace is less than 5 megabytes then put "5 MB warning"
if the size of file logFile > 256 KB then trimLogFile
put (the size of file movie) / 1 MB into movieSizeInMegabytes
バイナリデータ
音や画像を低レベルで操作するアプリケーションなど、バイナリデータを直接扱う必要がある場合もあります。任意のサイズのバイナリデータを作成または比較する必要がある場合、SenseTalkはバイナリデータリテラルを提供します。データリテラルは、角括弧 < >
で囲まれた任意の偶数の16進数で書かれます。データリテラル内のスペースと改行は無視されます:
put <AF326B47 0058D91C> into value64