.
И вычисляются на этапе компиляции
Roman
какая разница, если в объекте, на который ссылается указатель, все внутрениие объекты закрыты?
а если нет? ты просто так мыслишь, потому-что в Go нет иммутабельности, поэтому приходится закрывать доступ к переменным и копировать их в Getter'е я-же предлагаю дать возможность доступа к публичным иммутабельным полям без копирования (!) с минимальными затратами при написании кода но это лишь часть proposal'а, там ещё больше описано
Pawel
И вычисляются на этапе компиляции
вот именно. И притягивать это за уши к объектам имхо лишнее
Daniel
вообще-то иммудабельность нужна нам для параметров, передаваемых в функции
Daniel
а не для глобаьных переменных
Roman
Ну константа это о другом, они и хранятся в своем участке памяти
я предлагаю использовать const keyword чтобы не добавлять новых keyword'ов, дабы НЕ ЛОМАТЬ обратную совместимость!
.
Лучше для этого использовать другое ключевое слово
Roman
скажем мы захотели добавить "immut" keyword, но на гитхабе уже где-нибудь да используется "immut" в коде, всё, мы сломали код в новом релизе он не компилится.
Roman
в любом случае, добавлю этот аргумент в FAQ
.
и поломать совместимость?
Эм, как это поломает совместность?
.
Это же не будет мешать старому коду работать
Subbotin
Будет. Переменные не могут иметь названия из ключевых слов
.
Окей, но в тоже время нам предлагают ввести новое ключевое слово check в работе с ошибками
.
Почему это не ломает обратной совместимости?
Subbotin
Ломает. Потому и 2.0
.
2.0 это коммерческое название)
.
Никто ломать совместимость не собирается
.
С чего вдруг
Посмотри видео, там это прямым текстом сказано
Dorian
Правила мажорной версии никто не отменял
.
Мажорная версия - обратно несовместные изменения
.
Их не будет
Dorian
Да уж не будет
Roman
Это же не будет мешать старому коду работать
будет. Если мы решим использовать новый keyword: immut то возможно у кого-то в коде возникнет конфликт использования keyword'а в качестве контекстного символа, а это возможно сломает старый код, и это очень не хорошо, поэтому я решил предложить имеющийся const, с ним подобное невозможно, уже добавля это в FAQ: https://github.com/romshark/Go-2-Proposal---Immutability/issues/1
.
Это плохой вариант, перегружать смысл const
Roman
Окей, но в тоже время нам предлагают ввести новое ключевое слово check в работе с ошибками
поэтому я собственно и пояснил: https://github.com/romshark/Go-2-Proposal---Immutability#33-arent-other-features-such-as-generics-and-better-error-handling-not-more-important-right-now ...что генерики и ошибки зря в хайпе, ибо это спорные вещи и решение не очевидно, в то время как с immutability всё гораздо проще
Roman
Это плохой вариант, перегружать смысл const
вариант поломать совместимость - ещё хуже, приходится выбирать меньшее зло из двух
.
Ну мы не сможем для всех нововведений выбирать уже существующие слова и перегружать их контекст
.
Ввод новых ключевых слов неизбежен
Roman
Ну мы не сможем для всех нововведений выбирать уже существующие слова и перегружать их контекст
почему не можем? к чему это приведёт? какие последствия перезагрузки const?
.
почему не можем? к чему это приведёт? какие последствия перезагрузки const?
Окей, выберите подходящее слово из существующих для контрактов, которые предлагаются для реализации дженериков
Roman
С чего вдруг
с того что "2.0" звучит круто потому-что всем кажется, что много чего изменилось и язык не стоит на месте в то время как "1.17" звучит как "мы фиксим старый лисипед", хотя здравомыслящий человек поймёт, что "1.17" круче чем "2.0", потому-что не ломает совместимость
Dorian
Так себе маркетинг
Roman
Так себе маркетинг
вот и я о чём, поэтому я категорически против 2.0
Roman
Окей, выберите подходящее слово из существующих для контрактов, которые предлагаются для реализации дженериков
извините, причём здесь дженерики? забудьте про них хоть на минуту, здесь вопрос был в том, к каким последствиям может привести перегрузка const
Fastumkruk
Читаю чат уже пару месяцев и каждый день одно и то же. Дженерики, дженерики, дженерики!!!!!!!
.
извините, причём здесь дженерики? забудьте про них хоть на минуту, здесь вопрос был в том, к каким последствиям может привести перегрузка const
Ни к каким серьезным. Это просто странно, перегружать смысл ключевого слова совсем разными задачами
Roman
вот чего сейчас не хватает, так это scatter-gatter в языке =(
Roman
Это вопрос не о дженериках, а о реализации какой либо новой фичи
вы так и не ответили на вопрос, как и на что перегрузка const может повлиять.
Dorian
Не про обработку ошибок же
Vladislav
ребят, нужен фидбэк: https://github.com/romshark/Go-2-Proposal---Immutability
А можно реальные примеры зачем это? А не абстрактные faster, better, stronger.
.
Ни к каким серьезным. Это просто странно, перегружать смысл ключевого слова совсем разными задачами
Dorian
Спокуха, щас скоро про Раст начнется
Fastumkruk
А чо тут еще писать?
Наверное новичкам помогать, новочти о го узнавать, что то стоющее.
Daniel
вот чего сейчас не хватает, так это scatter-gatter в языке =(
вот это уж точно незаметно для нас впилят
Vladimir
Кто трогал go mod? Как там локальный пакет импортировать?
Daniel
а что такое локальный пакет?
Roman
А можно реальные примеры зачем это? А не абстрактные faster, better, stronger.
вот мне в этом и нужна помощь комьюнити, предоставить ваши примеры того, где конкретно это может пригодиться. я только начал его писать буквально на днях, собственно ищу единомышленников
Daniel
go mod касается ровно одной вещи - поиска сорцов на диске. типа, не нужен gopath и vendor
Roman
Ни к каким серьезным. Это просто странно, перегружать смысл ключевого слова совсем разными задачами
получается что лучше "странно что const и тут и тут", чем "сломали половину репозиторией на гитхабе, achievement unlocked!"
Daniel
при этом практически все тулзы к отсутствию вендора и gopath не готовы
Vladislav
вот мне в этом и нужна помощь комьюнити, предоставить ваши примеры того, где конкретно это может пригодиться. я только начал его писать буквально на днях, собственно ищу единомышленников
Ну так пропозал должен отталкиваться от того какую проблему он решает. Потом уже думать над дизайном. А не просто захотелось. Так вы можете подгонять проблемы под решение.
Daniel
проблема простая - мы передаем в чужие либы небезопасные типы (например, слайсы) и не знаем, что там с ними будут делать. может быть - нулями заполнят
.
получается что лучше "странно что const и тут и тут", чем "сломали половину репозиторией на гитхабе, achievement unlocked!"
Половину? Не думаю что в коде очень часто используют переменную с названием immutable, например)
Vladimir
Например у вас в main.go package main. Рядом папка handlers с package handlers. В GOPATH я напишу для импорта github.com/me/blablabla/handlers. go mod такое не переварит.
Vladimir
почему не переварит?
Потому что его же нету в GOPATH
Roman
Половину? Не думаю что в коде очень часто используют переменную с названием immutable, например)
я утрировал, це сарказм, мисьё)) но сломать даже 1 популярный фреймворк уже беда, не говоря уже о маленьких пакетах которые уже не поддерживаются, но используются в других пакетах
Daniel
более того, могут и не специально данные попортить, а взяв сабслайс и использовав буфером