変数フィールド

変数フィールドには、値として文字列が格納され、テキストとして文字列が格納されます。「 value は変数の ID で、text は変数の名前です。

変数フィールド

エディタが開いている [変数] フィールド

折りたたまれたブロックの [Variable] フィールド

作成

型指定なし

JSON

{
  "type": "example_variable_untyped",
  "message0": "variable: %1",
  "args0": [
    {
      "type": "field_variable",
      "name": "FIELDNAME",
      "variable": "x"
    }
  ]
}

JavaScript

Blockly.Blocks['example_variable_untyped'] = {
  init: function() {
    this.appendDummyInput()
        .appendField('variable:')
        .appendField(new Blockly.FieldVariable('x'), 'FIELDNAME');
  }
};

Typed

JSON

{
  "type": "example_variable_typed",
  "message0": "variable: %1",
  "args0": [
    {
      "type": "field_variable",
      "name": "FIELDNAME",
      "variable": "x",
      "variableTypes": ["Number", "String"],
      "defaultType": "Number"
    }
  ]
}

JavaScript

Blockly.Blocks['example_variable_typed'] = {
  init: function() {
    this.appendDummyInput()
      .appendField('variable:')
      .appendField(new Blockly.FieldVariable(
          'X',
          null,
          ['Number', 'String'],
          'Number'
      ), 'FIELDNAME');
  }
};

変数コンストラクタは、省略可能な変数名、 validator: オプションの変数の配列 オプションのデフォルト タイプがあります。

  • 変数名は文字列にする必要があります。これがプロジェクトの名前 初期変数です。null または未定義の場合、一意の名前 生成されます。
  • 変数型は文字列の配列にする必要があります。これにより フィールドが保持できる変数の型(つまり、変数の型、 追加できます)。null または未定義の場合、すべての変数型は プルダウンに追加されます。
  • デフォルトのタイプは文字列です。これは、kubectl の フィールドの初期変数モデルを使用します。これが定義されている場合は、 配列の変数に代入されます。null または未定義の場合、この値はデフォルトで つまり、最初の変数には柔軟に型が設定されます。

→ 厳密な型付けの詳細については、以下をご覧ください。 型チェック

シリアル化

JSON

変数フィールドの JSON は次のようになります。

{
  "fields": {
    "FIELDNAME": {
      "id": "QJD^+@[RVIwbLSZoDb:V"
    }
  }
}

ここで、FIELDNAME は変数フィールドを参照する文字列です。 value は、フィールドが参照する変数の ID です。

ツールボックスでこのフィールドを使用する場合は、名前を指定することもできます。 と(省略可)は直接入力します。これは、使用可能な変数がないため、 ご覧ください。

{
  "fields": {
    "FIELDNAME": {
      "name": "my_variable",
      "type": "string"
    }
  }
}

XML

変数フィールドの XML は次のようになります。

<field name="VARIABLE" id="QJD^+@[RVIwbLSZoDb:V" variabletype="">name</field>
  • ノードの name 属性には、変数フィールドを参照する文字列が含まれています。
  • ノードの id 属性には、フィールドで使用した変数の ID が あります。
  • ノードの variabletype 属性には変数の型が含まれます。「 variabletype は、コンストラクタのデフォルトの型パラメータと同じルールに従います。
  • ノードの内部テキストは変数の名前です。内部テキスト値 コンストラクタの変数名パラメータと同じルールに従います。

変数バリデータの作成

変数フィールドの値は文字列なので、バリデータはすべて文字列を受け入れ、 文字列、null、または undefined を返します。

こちらは、一部の事前定義された変数のみを受け入れるバリデータの例です。 。これらの変数は、Terraform Registry の Workspace.createVariable 関数が呼び出されます。

function(newValue) {
  var validIds = ['Worf', 'Riker', 'Picard'];
  if (validIds.indexOf(newValue) == -1) {
    return null;
  }
  return newValue;
}