값 블록은 출력 연결이 있는 블록입니다. 이는 텍스트 기반 언어에서 값 (표현식)처럼 작동합니다.

Blockly의 모든 블록과 마찬가지로 값 블록도 블록 코드 생성기를 정의하여 코드 문자열로 변환할 수 있습니다.

import {javascriptGenerator, Order} from 'blockly/javascript';

javascriptGenerator.forBlock['custom_block'] = function(block, generator) {
  // Collect argument strings.
  const fieldValue = block.getFieldValue('MY_FIELD');
  const innerCode = generator.valueToCode(block, 'MY_VALUE_INPUT', Order.ATOMIC);

  // Return code.
  return ['my code string', Order.NONE];
}

인수 문자열 수집

모든 블록 코드 생성기는 필드 값 수집내부 블록 코드 수집을 요구합니다.

// Collect field values.
const fieldValue = block.getFieldValue('MY_FIELD');

// Collect inner block code strings.
const innerCode = generator.valueToCode(block, 'MY_VALUE_INPUT', Order.ATOMIC);

내부 블록의 코드를 여러 번 참조하는 경우 블록에 인수 캐싱을 추가해야 합니다.

반품 코드

값 블록 코드 생성기의 반환 유형은 첫 번째 값이 코드 문자열이고 두 번째 값이 우선순위인 배열입니다.

return ['my code string', Order.NONE];

우선순위는 블록 코드 문자열 주위에 괄호가 추가될 때를 제어합니다. 괄호가 추가되는 시점을 제어하는 방법에 대한 자세한 내용은 괄호 문서를 참조하세요.