Приведение строки к целому числу в GolfScript


12

GolfScript автоматически приводит значения в соответствие со следующей последовательностью «приоритет»:

целое число → массив → строка → блок

(перечислены от низшего к высшему.)

Это означает, что "1"7+строка остается "17"в стеке (а не 8), потому что строки имеют более высокий приоритет, чем целые числа.

[ Этим ветеранам GolfScript - извинения за оскорбление ваших умственных способностей. ]

Как можно было бы сделать это по-другому? То есть привести строку в целое число ?


name:~ args:1 functions:bitwise not, dump, eval
Утренняя монахиня


@LeakyNun; Ницца! Вы хотите поставить это в ответ? Я бы, конечно, принял это.
digitalis_


@downvoter; Не могли бы вы оставить комментарий, объясняющий, почему вы проголосовали?
digitalis_

Ответы:


10

Там же оператор ~в golfscript, который делает следующее: bitwise not, dump, eval.

Следовательно, "1"выдаст строку, "1"а "1"~вычислит эту строку (в целое число 1).

Тогда все, что вам нужно сделать, это "1"~7+.

Попробуйте онлайн!


5
Стоит упомянуть, что это evalкод для игры в гольф, что означает, например "1.0"~, что-то неожиданное.
Линн
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.