Здравствуйте, Shmj, Вы писали:
Pzz>>А если методы объекта имеют побочные эффекты, не связанные с объектом?
S>Если константный класс (конструктор с const) — то ограничения не касаются тела методов, к сожалению
Но просто для себя знайте что такие методы не должны иметь т.н. побочных эффектов. Если допустили побочный эффект — ССЗБ, не нужно было делать const-конструктор.
"Просто для себя знайте..." — это в спецификации языка так написано и проверяется компилятором, или негласная договорённость среди посвященных?
S>Сделали так, чтобы все-таки можно было работать с не-константными внешними объектами, иначе будет очень узкая сфера применения — а сейчас используется на полную. Т.е. просто для себя знать — не делать const, если методы не чистые. Компилятор пока не проверяет.
Мне что-то кажется, что после Go как-то стыдно делать языки, не обеспечивающие обратной совместимости (в том смысле, что более новая версия компилятора может не съесть
соответствующий спецификации языка код, который ела более старая версия компилятора). Неужели Dart — исключение?