필드

필드는 문자열, 숫자, 색상 등 사용자가 수정할 수 있는 값을 정의하기 때문에 코드 생성의 중요한 부분입니다.

생성된 코드에 필드 값을 포함하려면 필드 값을 가져와 사용 가능한 문자열로 변환한 후 문자열을 코드의 나머지 부분과 연결해야 합니다.

import {javascriptGenerator} from 'blockly/javascript';

javascriptGenerator.forBlock['my_custom_block'] = function(block, generator) {
  // Get the field value.
  const fieldValue = block.getFieldValue('MY_FIELD');

  // Concatenate the code.
  const code = `some code ${fieldValue} some more code`;

  // Return the code.
  return code;
}

값 가져오기

getFieldValue를 사용하여 필드 값에 액세스할 수 있습니다. 반환되는 내용은 필드마다 다르므로 특정 필드에 대한 정보는 내장 필드 문서를 확인해야 합니다. 예를 들어 텍스트 입력 필드는 사용자가 입력한 텍스트를 그대로 반환하지만 드롭다운 필드는 사용자가 선택한 항목과 연결된 언어 중립적인 문자열을 반환합니다.

값 변환

대부분의 필드 값은 코드 문자열에 즉시 연결할 수 있습니다. 그러나 일부 필드 값을 사용하려면 추가 작업이 필요합니다.

문자열

문자열을 연결하려면 코드 생성기에서 따옴표로 묶어야 합니다.

// For a single line text field.
const str = generator.quote_(block.getFieldValue('STR'));

// For a multiline text field.
const str = generator.multiline_quote_(block.getFieldValue('STR'));

변수

변수 이름을 연결하려면 코드 생성기로 스크러빙해야 합니다. 이는 다음 두 가지 이유로 필요합니다.

  1. 변수는 사용자가 선택한 언어로 입력합니다. 즉, ASCII 문자로 변환해야 할 수도 있습니다. 예를 들어 'متغير'은(는) '_D9_85_D8_AA_D8_BA_D9_8A_D8_B1'(으)로 변환됩니다.
  2. 변수가 예약어와 충돌할 수 있습니다. 즉, 충돌하지 않도록 수정해야 할 수도 있습니다. 예를 들어 'for'은(는) 'for2'로 변환됩니다.
const identifier = generator.getVariableName(block.getFieldValue('VAR'));

코드 연결

필드 값을 가져와서 문자열로 변환했으면 코드 문자열을 사용하여 올바른 위치에 연결할 수 있습니다.

const code = `some code ${value} some more code`;

반품 코드

블록 유형에 따라 코드 문자열이 다른 방식으로 반환되어야 하므로 개별 페이지에서 자세한 내용을 확인하세요.