Netlo go: чтение из строки ожидает буквальное значение - PullRequest
1 голос
/ 30 апреля 2020

Следующее вызывает предупреждение «ожидаемое буквальное значение», что я пропускаю? Я ожидаю, что будет возвращено значение 1000.

let item-cost ["dia-cost"]
let item-cost first item-cost
print read-from-string item-cost

1 Ответ

2 голосов
/ 30 апреля 2020

Как вы сказали в комментариях, dia-cost - это переменная со значением 1000, которую вы хотите получить. Суть проблемы в том, что read-from-string читает только литеральные значения типа номер, список, строка, логическое значение или никто. Формулировка там немного сбивает с толку, так как она говорит: «Интерпретирует заданную строку, как если бы она была набрана в Командном центре», поэтому я мог видеть, как переменная должна давать свое значение с read-from-string просто как вы могли бы видеть в командном центре, но переменные не являются литеральными значениями этих ограниченных типов.

К счастью, есть простая альтернатива, вы можете использовать примитив runresult и его интерпретирует строку как имя переменной и получит значение:

to test
  let dia-cost 1000
  let item-cost ["dia-cost"]
  set item-cost first item-cost
  show runresult item-cost ; prints "1000"
end
...