Lancer.Rev.X

Пользователь

Регистрация: 07.12.2014

Сообщения: 4181

Рейтинг: 2228

Lancer.Rev.X

Регистрация: 07.12.2014

Сообщения: 4181

Рейтинг: 2228

img

с 10 класса изучал с++ и вообще не понимаю, почему во всех современных языках нет неизменяемых объектов. даже в таких серьезных и старых языках, как джава. вот в с++ было круто, там даже можно было делать специальные константные методы для класса, которые работали с константными объектами. почему больше нигде, кроме раста ничего подобного нет? как вы пишете на джаве или на го без неизменяемых объектов? не понимаю, объясните.

upd. конечно же, я имею в виду неизменяемые объекты пользовательских классов, либо неизменяемые списки, словари

lexani4321

Пользователь

Регистрация: 28.03.2018

Сообщения: 13019

Рейтинг: 4063

lexani4321

Регистрация: 28.03.2018

Сообщения: 13019

Рейтинг: 4063

Lancer.Rev.X сказал(а):

с 10 класса изучал с++ и вообще не понимаю, почему во всех современных языках нет неизменяемых объектов. даже в таких серьезных и старых языках, как джава. вот в с++ было круто, там даже можно было делать специальные константные методы для класса, которые работали с константными объектами. почему больше нигде, кроме раста ничего подобного нет? как вы пишете на джаве или на го без неизменяемых объектов? не понимаю, объясните.

Нажмите, чтобы раскрыть...

Кортежи, строки, целые числа в пайтоне - неизменяемые объекты.

УПД. Ещё числа с плавающей запятой, комплексные числа, булевые значения и фрозен сеты.

Trash Monster

Пользователь

Регистрация: 11.10.2018

Сообщения: 466

Рейтинг: 458

Trash Monster

Регистрация: 11.10.2018

Сообщения: 466

Рейтинг: 458

статические методы тоже неизменны BloodTrail.png?1583148875

Lambda-chan

Пользователь

Регистрация: 26.07.2012

Сообщения: 4615

Рейтинг: 8641

Lambda-chan

Регистрация: 26.07.2012

Сообщения: 4615

Рейтинг: 8641

В любом функциональном языке объекты неизменяемы по дефолту

Lancer.Rev.X сказал(а):

как вы пишете на джаве или на го без неизменяемых объектов? не понимаю, объясните.

Нажмите, чтобы раскрыть...

Если не создавать мутаторы, то объекты не будут изменяться ZeroTwoThinking.png

dondosai04

Пользователь

Регистрация: 29.08.2019

Сообщения: 426

Рейтинг: 140

dondosai04

Регистрация: 29.08.2019

Сообщения: 426

Рейтинг: 140

Lancer.Rev.X сказал(а):

с 10 класса изучал с++ и вообще не понимаю, почему во всех современных языках нет неизменяемых объектов. даже в таких серьезных и старых языках, как джава. вот в с++ было круто, там даже можно было делать специальные константные методы для класса, которые работали с константными объектами. почему больше нигде, кроме раста ничего подобного нет? как вы пишете на джаве или на го без неизменяемых объектов? не понимаю, объясните.

Нажмите, чтобы раскрыть...

в джаве есть final

ну кароче розберись в вопросе сначало а потом уже темки пили

Scouser_AK

Пользователь

Регистрация: 21.06.2020

Сообщения: 4051

Рейтинг: -745

Нарушения: 110

Scouser_AK

Регистрация: 21.06.2020

Сообщения: 4051

Рейтинг: -745

Нарушения: 110

Потому что всем насрать на это в основном)

 

Далеко не везде это важно.

 

 

 

Broer

Пользователь

Регистрация: 24.07.2018

Сообщения: 5888

Рейтинг: 1048

Broer

Регистрация: 24.07.2018

Сообщения: 5888

Рейтинг: 1048

Lancer.Rev.X сказал(а):

с 10 класса изучал с++ и вообще не понимаю, почему во всех современных языках нет неизменяемых объектов. даже в таких серьезных и старых языках, как джава. вот в с++ было круто, там даже можно было делать специальные константные методы для класса, которые работали с константными объектами. почему больше нигде, кроме раста ничего подобного нет? как вы пишете на джаве или на го без неизменяемых объектов? не понимаю, объясните.

upd. конечно же, я имею в виду неизменяемые объекты пользовательских классов, либо неизменяемые списки, словари

Нажмите, чтобы раскрыть...

Ты можешь класс определить через final и как бы всё. 

Lancer.Rev.X

Пользователь

Регистрация: 07.12.2014

Сообщения: 4181

Рейтинг: 2228

Lancer.Rev.X

Регистрация: 07.12.2014

Сообщения: 4181

Рейтинг: 2228

img
Поднятие темы

raven_cler

Пользователь

Регистрация: 10.04.2014

Сообщения: 587

Рейтинг: 103

raven_cler

Регистрация: 10.04.2014

Сообщения: 587

Рейтинг: 103

Lancer.Rev.X сказал(а):

с 10 класса изучал с++ и вообще не понимаю, почему во всех современных языках нет неизменяемых объектов. даже в таких серьезных и старых языках, как джава. вот в с++ было круто, там даже можно было делать специальные константные методы для класса, которые работали с константными объектами. почему больше нигде, кроме раста ничего подобного нет? как вы пишете на джаве или на го без неизменяемых объектов? не понимаю, объясните.

upd. конечно же, я имею в виду неизменяемые объекты пользовательских классов, либо неизменяемые списки, словари

Нажмите, чтобы раскрыть...

В любой функциональщине(haskell, erlang, scala и т.д.) иммутабельность есть важнейшая составляющая. Да, их используют, и да, на них работают. Хочешь иммутабельную жабу -- учи clojure, там тебе и лексическая область видимости, и много чего ещё.

 

Во всём остальном, включая плюсы, оно на уровне костылей. rust в свою очередь создаётся в довольно академической среде, и поэтому там есть много такого, чего нет в других императивных языках.