メインコンテンツまでスキップ
バージョン:25.2

地元の観光スポット

地元の観光スポット地元の観光スポット

While travelling in the land of sensetalk be sure not to miss out on the special features and local attractions!

SenseTalkには、他の言語とは一線を画し、「人間中心」という性質に貢献する高水準の機能が数多く含まれています。これらの機能の中には、言語の根幹に内在するものもあれば、SenseTalk特有の機能もあります。ここでは、そのいくつかについて解説します。

Units

数値には単位が関連付けられている場合があります。SenseTalkは数百種類の異なる単位を理解し、それらを使った計算や関連する単位への変換を行うことができます。

put 5 ft into length
put 20 inches into width
set area to length * width

put area --> 8.333333 square feet
put area as cm^2 --> 7741.92 square centimeters

パターン

SenseTalkのパターン言語については既に別のところで触れましたが、改めて触れておく価値があります。SenseTalkのパターン言語は、正規表現のすべての機能を、非常に読みやすく(そして書きやすい)形式で提供します。

put every occurrence of <digit> in "pi is 3.14 or 22/7" --> ["3","1","4","2","2","7"]

Each式

Each式は、リストやチャンクを処理するための強力で表現力豊かなツールです。Pythonや他の言語における「リスト内包表記」に似ています。

put each word of "in a hole in the ground" whose length is more than 3 --> ["hole","ground"]

ファイルはコンテナです

SenseTalkでは、テキストファイルを「コンテナ」として扱うことができます。これにより、変数やその他のコンテナに対して実行できるのと同様のテキスト操作(値へのアクセス、設定、変更など)をファイルに対して実行できます。

put "once upon a time" into file "tale.txt"--> set file contents
put the last word of file "tale.txt" --> "time"
set the first word of file "tale.txt" to capitalized of word 1 of file "tale.txt"
put "…" after file "tale.txt"
put file "tale.txt" --> "Once upon a time…"

データベースアクセス

SenseTalk には SQL データベースの操作 のサポートが組み込まれているため、直接的かつ読みやすい方法でレコードを取得および更新できます。

この 2 行の例では、データベース サーバーへの接続を確立し、データベース テーブルの 1 つから特定のレコードを取得し、そのレコード内の値の 1 つを更新して、更新されたレコードをテーブルに書き戻します。

set customerTable to table "Cust" of database {type:"odbc", dsn:"abc", name:"Ajax"}
add 1 year to the expDate of the record of customerTable where custNum is "30194"

日付と時刻

SenseTalk には、日付と時刻の値を操作する ための豊富な機能があります。

put "March 29" + 10 days —> "April 8"
put ("Apr 8, 2021" - "2021-03-29") as days —> 10 days

多重継承

SenseTalkオブジェクトは複数のヘルパーを持つことができ、それらのヘルパーの動作はオブジェクトの動作を補完します。オブジェクトには、オブジェクト自体の動作をオーバーライドする「初期ヘルパー」を持つ場合もあります。

その他

冒険好きな方は、次のトピックもぜひ探究してみてください。