Нестрогая типизация это всегда магия
Den 16.02.2021 13:43
По этой причине, я всегда, использую self,result,в методах, чтобы новые версии не ломали код.
Но вот это поведение:
@test2[]
-^first[]
кажется перебором с магией, контраргумент такой:
в общем случае, кода Парсера, в виду его целевой особенности, как бы один большой print, т.е. все что не код, то вывод в поток
строки.
Поэтому, в любой непонятной ситуации, в которой нет явного указания, нам следует ожидать сброса/приведения к типу по-умолчанию - строке.
Таким, образом из примера, ну и что, что @first[] возвращает int,
в самом то @test1 вместо явного result используется по сути строковая конкатенация "-" и результата @first, и такая себе идея получить это автоматически как double
Второй контраргумент:
такое выражение (без result в теле метода) как я видел, часто используется в сочетании с
@method[][result]
-
$some $output
где эта магия как раз направлена на удобство какой нить рекурсивной конкатенации строки, и могут быть проблемы где-то внезапно получить double из-за того что $some возвращает число
т.о. чтобы обезопасить себя от новой числовой магии, придётся писать что то типа:
@test1[]
-[^first[]]
Имхо, это странно.
Поэтому, если все же принять во внимание, что изначательнао таргетированная на string, основа языка во всех подсахаренных магических синтаксисах старалась сохранять хотя бы единообразие сохранения string, то и код типа
$v(^test1[])
$v($string)
должен вести себя одинаково, во всех других вариантах, отличных от default магии, у нас есть возможность $result()
- Интересно, а как лучше?, moko [M] 08.02.2021 16:35
- Неясно, G_Z [M] 16.02.2021 20:49 / 16.02.2021 20:50
- Ответ, moko [M] 16.02.2021 23:43
- Снова неясно, G_Z [M] 16.02.2021 23:57 / 17.02.2021 00:58
- Ответ, moko [M] 17.02.2021 01:05
- Ответ, G_Z [M] 17.02.2021 01:15
- Ответ, moko [M] 17.02.2021 02:54
- Чавооо... 0_0, Fritz 17.02.2021 18:47
- Ответ, G_Z [M] 17.02.2021 04:39 / 17.02.2021 04:45
- Ответ, moko [M] 17.02.2021 14:24
- Нестрогая типизация это всегда магия, Den 16.02.2021 13:43
- А почему эта история только про числа?, Ivan Sergeev 09.02.2021 11:53
- Голосую за -1 double во всех случаях (-), Sumo [M] 08.02.2021 19:59