範囲
範囲の定義
SenseTalkでは範囲を使って値の範囲を示します。範囲は開始値と終了値を指定し、2つの値の間にダブルドット演算子(2つのピリオド)またはto
を使って指定します。
Syntax:
{from} startValue [ to | .. ] endValue { [{step{ping}} {down} by | step] stepvalue }
例:
put 1 to 100 into firstHundred
set validRange to 100..200
範囲にはオプションでステップ値を含めることができ、by
、step
、step by
を使用します(ステップ値の使用は以下の"Using a Range to Generate a List"で説明されています):
例:
put 1 to 99 step by 2 into oddNumbers
set evenNumbers to 0..100 by 2
範囲の単純な使用法
最も単純な使用法では、範囲は2つの値を指定します。start
とend
の値を範囲のプロパティとして直接アクセスします:
例:
set myRange to 10 .. 20 -- 10 to 20
put myRange.start --> 10
put myRange's end --> 20
add 15 to the end of myRange
put 10 is within myRange -- Puts "true"
is within
演算子を使用して、他の値が範囲内にあるかどうかをテストします:
例:
set myRange to 10 .. 20 -- 10 to 20
put 13 is within myRange -- Puts "true"
put 18.975 is within myRange -- Puts "true"
put 9.2 is within myRange -- Puts "false"
範囲は_包含的_であり、つまり、開始値と終了値の両方を含みます。したがって、10と20の間の 任意の値(10と20を含む)は、例の範囲内にあります:
例:
set myRange to 10 .. 20 -- 10 to 20
put myRange.start -- 10
put myRange's end -- 20
is a range
演算子を使用して、値が範囲であるかどうかをテストします:
例:
put myRange is a range -- Puts "true"
範囲を使用してリストを生成する
範囲をシーケンスジェネレータとして使用し、範囲の開始値から始まり、その終了値まで自動的にシーケンスまたはリストの値を生成します。範囲がその値を生成する最も簡単な方法は、リストが期待されるコンテキストで範囲を使用することです:
例:
put item 5 of 10 to 20 -- 14
put the last 3 items of 100..200 by 2 -- Puts [196,198,200]