Сообщение Re: Лютейщий баг - приоритет операторов от 01.12.2022 23:56
Изменено 02.12.2022 1:20 Разраб
Re: Лютейщий баг - приоритет операторов
Здравствуйте, Shmj, Вы писали:
S>
S>
S>Т.е. когда ItemLink is null — все выдаст правильно = 0 + index
S>А когда не null, то выдаст просто Offset, вместо ожидаемых Offset + index
S>Вот как такое находить?
Тестировать св-ва функций https://fscheck.github.io/FsCheck/
Операторы объединения со значением NULL являются правоассоциативными.
Вообще то, как работают операторы надо знать.
Или их не использовать(писать на F#):
PS
PPS
меня иногда клинит даже значение "?."
синтаксис зло. функции добро.
S>
S>lastCursor.ItemLink?.Offset ?? 0 + index
S>S>
S>Т.е. когда ItemLink is null — все выдаст правильно = 0 + index
S>А когда не null, то выдаст просто Offset, вместо ожидаемых Offset + index
S>Вот как такое находить?
Тестировать св-ва функций https://fscheck.github.io/FsCheck/
Операторы объединения со значением NULL являются правоассоциативными.
Вообще то, как работают операторы надо знать.
Или их не использовать(писать на F#):
((=) 1
((/) 2
((+) 1 1)))PS
var x = lastCursor.ItemLink?.Offset?.GetValueOrDefault(0) + index;PPS
меня иногда клинит даже значение "?."
синтаксис зло. функции добро.
Re: Лютейщий баг - приоритет операторов
Здравствуйте, Shmj, Вы писали:
S>
S>
S>Т.е. когда ItemLink is null — все выдаст правильно = 0 + index
S>А когда не null, то выдаст просто Offset, вместо ожидаемых Offset + index
S>Вот как такое находить?
Тестировать св-ва функций https://fscheck.github.io/FsCheck/
Операторы объединения со значением NULL являются правоассоциативными.
Вообще то, как работают операторы надо знать.
Или их не использовать(писать на F#):
PS
PPS
меня иногда клинит даже значение "?." (в нормальных языках типа js / cl null это также false — удобно)
синтаксис зло. функции добро.
S>
S>lastCursor.ItemLink?.Offset ?? 0 + index
S>S>
S>Т.е. когда ItemLink is null — все выдаст правильно = 0 + index
S>А когда не null, то выдаст просто Offset, вместо ожидаемых Offset + index
S>Вот как такое находить?
Тестировать св-ва функций https://fscheck.github.io/FsCheck/
Операторы объединения со значением NULL являются правоассоциативными.
Вообще то, как работают операторы надо знать.
Или их не использовать(писать на F#):
((=) 1
((/) 2
((+) 1 1)))PS
var x = lastCursor.ItemLink?.Offset?.GetValueOrDefault(0) + index;PPS
меня иногда клинит даже значение "?." (в нормальных языках типа js / cl null это также false — удобно)
синтаксис зло. функции добро.