красный: путь o / a недействителен для целых чисел!тип - PullRequest
0 голосов
/ 28 сентября 2018

Этот код работает:

  o: context [
    a: 1
  ]

  o/a

Этот код отсутствует:

  o: context [
    a: 1
    return a
  ]
  o
  o/a

* Ошибка сценария: путь o / a недопустим для целого числа!Тип * Где: поймать *** Стек:

Есть ли способ заставить работать второй?

1 Ответ

0 голосов
/ 28 сентября 2018

return заставит свою функцию возвращать любое предоставленное значение.Дело в том, что context тоже функция!Таким образом, когда вы делаете:

o: context [
    a: 1
    return a
]

o слово будет установлено в возвращаемое значение из функции context, которая принимает блок, оценивает его в соответствии с семантикой make object! ... (см. Подробности здесь ) и возвращает целое число 1 в процессе, потому что это то, что вы просили это сделать.

Я не совсем уверен, что еще вы ожидали в этом случае.Если вы хотите установить o в значение object! - просто не используйте return.

...