単位形式
単位形式は、時間間隔、長さや距離、質量や重量など、数値の単位の 表示とフォーマットを制御します。
単位形式の理解
単位形式がない場合、数値は単位タイプの全名を表示します。例えば:
put 1 mm --> 1 millimeter
put 3 kg --> 3 kilograms
多くの場合、デフォルトの振る舞いは十分ですが、フォーマットをより制御する必要がある場合もあります。例えば:
put 4425 mins --> 4425 minutes
put 4425 mins as hrs --> 73.75 hours
put 4425 mins as days --> 3.072917 days
単位形式を使用しない場合、4425分を分、または
時間、または
日として表示することしかできません。より良い形式は3日1時間45分かもしれません、これは理解しやすいです。これを達成するために、以下の形式のいずれかを適用できます:
"[day] days [hr] hours [min] minutes"
"[days] @ [hours] @ [minutes] @"
単位形式の要素
単位形式はシンプルからかなり複雑まで様々です。それらを理解する最も簡単な方法は、基本から始めて、必要に応じて他のオプションを追加することです。
基本事項
最も基本的な単位形式は、テキスト文字列で、最終結果中で数値に置き換えられる1つ以上の単位トークン、または単位名が含まれています。単数または複数の単位名を使用することができ、大文字小文字は問題ありません。名前は単位タイプを識別する必要があります。例えば:
put 5 kg -->5 kilograms
put 5 kg with format "[KG] kg" --> 5 kg
put 5 kg with format "[Kilogram] kg" --> 5 kg
put 5 kg with format "[kilograms] kg" --> 5 kg
"@"トークンはより正確な構文を必要とします。詳細は、単位名(@トークン)をご覧ください。
単位形式に複数の単位名が含まれている場合、SenseTalkは左から右へと動作し、それぞれのトークンを数値の合計がそのタイプの単位の整数部分となるように置き換えます。次の例では、SenseTalkは:
- 483秒が8.05分であると判断します。
[min]
トークンを整数部分8で置き換えます。- 余りの0.05分、つまり3秒を次のトークンに割り当てます。
put 483 secs format "[min] minutes [s] seconds" --> 8 minutes 3 seconds
左から右への値の割り当ては、単位フォーマットシステムが、大きい単位から始まり、次第に小さくなる単位で形成された値を生成できることを意味します。
トークン内の単位名
前述の通り、単位トークン、または単位名の構文は柔軟です。単数名、複数名、または略語を含めることができます。例えば、時間を表す単位トークンを[hours]
または[hour]
または[hrs]
または[hr]
と書くことができます。次の単位形式文字列は少し異なって見えますが、同じフォーマットを適用します。
"[hr]:[min]:[sec]"
"[hours]:[minutes]:[seconds]"
...結果として
3 seconds --> 0:0:3
521957 seconds --> 144:59:17