次の方法で共有


構成依存データのパラメーターを定義する

パラメーターは、*Features コンストラクトを使用して導入されます。 *Features コンストラクトのコンストラクト タグは、パラメーターを識別します (または、パラメーター名を定義します。これはフィーチャー名とも呼ばれます)。

*Features コンストラクトの内容は、1 つ以上の *Option コンストラクトで構成できます。 *Option コンストラクトは、パラメーターが使用できる値または状態を定義します。 *Option コンストラクトのコンストラクトタグは、許可される値または状態を識別します。 このコンストラクト タグは、オプション名とも呼ばれます。

たとえば、次のコード例に示すように、Today という名前のパラメーターを定義し、その値として曜日を取ることができます。

*Feature: Today
{
  *Option: Sunday{}
  *Option: Monday{}
  *Option: Tuesday{}
  *Option: Wednesday{}
  *Option: Thursday{}
  *Option: Friday{}
  *Option: Saturday{}
}

前の例では、 Today パラメーターは、任意の時点で 1 つの値のみを受け取ることができます。 Today日曜日火曜日 の両方にすることはできません。 ただし、すべてのパラメーターが排他的な値に限定されるわけではありません。一度に 1 つ以上の値を取ることができます。 たとえば、複数のペンの色を同時に保持できるロボットがある場合は、PenColors パラメーターを定義して、現在手に入っている色を記述できます。 PenColors: (赤と緑と黄) を指定すると、完全に有効な場合があります。

*UIType 予約ディレクティブを使用すると、パラメーターがいつでも 1 つの値のみを受け取ることができるか (PICKONE) か、または特定の時点で複数の値をそのパラメーターに割り当てることができるかどうかを指定できます (PICKMANY)。 *UIType ディレクティブは、*Features コンストラクトの子エントリとして配置されます。

注意 GDL では、パラメーターに "nothing" を割り当てられないことに留意してください。 したがって、ペンを持たないロボットを記述するには、PICKMANY パラメーターに None または Off というオプションを宣言する必要があります。 使用されるオプション名は重要ではありません。*NoneOption ディレクティブを使用して、このプロパティに割り当てるオプションを指定できます。 *NoneOption が指定するオプションは、他のどのオプションとも互換性がありません。

パラメーターがある限り多くの *Feature コンストラクトを定義できます。 *Feature コンストラクトはすべてルート コンテキストに存在する必要があります。 ルート コンテキストには親コンストラクトがありません。