2016-06-22 4 views
-3

Что такое Rust эквивалент в Java final методов, свойств и т.д. ...Что эквивалентно финалу Java в Rust?

+3

Люди здесь пытаются сохранить хорошую запись о деятельности, пожалуйста, подумайте о том, что является проблемой, а не downvoting ...: | Люди, которые просто не знают других и только заботятся о себе, не должны иметь право голоса в SO .. Если бы это можно было бы управлять .. – SonOfSun

+3

Вы, скорее всего, отказались, потому что, похоже, вы не проводили никаких исследований. Использование 'final' включает подклассификацию (Rust не имеет), все переменные могут быть назначены только один раз (по умолчанию в Rust). Это аспекты, с которыми вы сталкиваетесь сразу после выполнения любой ржавчины. Кроме того, «и т. Д.» Вроде как говорит «Я слишком ленив, чтобы перечислять все виды использования, вы делаете для меня всю тяжелую работу». – Shepmaster

+3

Это вопрос с небольшими усилиями, пахнущий проблемой XY (вы, вероятно, спрашиваете, потому что хотите достичь определенной цели, которую вы достигнете на Java с «final», но вместо того, чтобы спрашивать об этой вещи, которую вы задаете о функции языка Java) и даже не имеет особого смысла, когда вы знакомы с Rust. – delnan

ответ

9
  • final методов не имеет смысла, потому что ржавчина не имеет наследование реализации.
  • final для свойств не существует, потому что он не имеет сетки с унаследованной изменчивостью. В большинстве случаев свойства a.x являются изменяемыми тогда и только тогда, когда их владелец a изменен. В то время как можно выбрать большую изменчивость (это называется , присущей изменчивости), обратное (поле, неизменяемое в пределах изменяемого в противном случае значения) считалось слишком большим количеством хлопот, чтобы быть полезным. Отчасти это связано с тем, что Rust не по умолчанию ссылается на семантику, поэтому вы всегда можете полностью переписать «объект», даже если вы не можете перезаписать отдельные поля.
  • final для локальных переменных аналогичен поведению по умолчанию в Rust (переменные по умолчанию являются глубоко неизменными). Существуют различия, в основном, то, что локальный ссылочный тип final предотвращает изменение ссылки , но не ссылающийся объект — Rust наследует изменчивость, см. Выше.
Смежные вопросы