Daniel
unsafe пускай делает, что хочет, на то он и unsafe
aadz
В общем, я хочу qualifier конст только при описании функции. А иначе как это сделать, чтобы погроммист у себя внутри пакета менял все, что ему нада?
Daniel
вообще-то, нам давно нужны константы сложных типов
Roman
Daniel
так что его надо и к переменным, и к параметрам приделывать
Roman
Daniel
да, и это меня не беспокоит
Daniel
Roman
Roman
Daniel
ascii... слушай, а зачем?
реальное преймущество - штатная TOC. по-моему, есть еще что-то полезное ва районе таблиц, но я не помню
Roman
Каст const в обычный
cast это конечно хороший вопрос и уже склоняет к вопросу "можно ли защитить суицидального человека от смерти?"
я думаю тот кто прям горит желанием отстрелить себе ногу - найнёд возможность это сделать
однако, можешь привести пример кода? я в пропосале учту
aadz
Daniel
каст надо бы научить спецификатор дублировать от оригинального объекта.
Daniel
Roman
Daniel
это ты о чем?
aadz
const interface{} - вот это как раз то, что называется "когнитивный диссонанс". Уж начали типизировать, я считаю, так и нечего увиливать тогда
Daniel
вот
Roman
Roman
но хотя... если стронний код может взять const но таки поломать твои данные... хмммм, не знаю...
Daniel
еще раз - мы не от сознательных действий защищаемся, а от ошибок
Roman
aadz
+1
Roman
Roman
aadz
Daniel
да почитай его уже :)
aadz
блин... OK! завтра почитаю, если проснусь
Daniel
а зачем нужны Immutable Return Values?
aadz
у тебя даже и сцылко на него есть?
Roman
ну там минут 10, хотите я read-time добавлю в заголовок точный?
Daniel
https://github.com/romshark/Go-2-Proposal---Immutability/blob/master/README.md
aadz
OK! thanks. почитаю
Roman
Ещё бы нормальные геттеры/сеттеры в го
aadz
Daniel
Roman
Ещё бы нормальные геттеры/сеттеры в го
вот как раз с имутабельностью к ним на шажок ближе
type Object struct {
internal *Object
}
func (o const *Object) Get() const *Object {
return o.internal
}
aadz
aadz
ну, не был бы, но типа того :)
Roman
И это тут же был бы Python
Собственно, оттуда идея.
Фактически, в зависимости от того с какой стороны знака присваивания надо вызвать либо Get, либо Set
aadz
а оно тут правда так уж нада?
Roman
foo.one, foo.two = fn()
aadz
Блин, многие и в футбол никогда толком не играли, а обсуждают это, как заведенные... То же и с разработкой языков программирования - по себе чую, я все в этом понимаю, что даже мама не горюй :)
Roman
Вместо a, b = fn() и потом foo.Set(a), foo.Set(b)
Daniel
https://github.com/romshark/Go-2-Proposal---Immutability/pull/3/files
Daniel
слушай, а сеттеры-геттеры - это зачем?
Roman
aadz
Чтобы вести бухгалтерию, столько раз спросили, а саолько раз назначили
aadz
И чтобы проверить, кто это спросил, или кто назначил, например
Daniel
Вообще?
в реальном программировании на go :)
Roman
aadz
не за чем :)
aadz
просто такая парадигма доступа к данным
aadz
да
aadz
Вот по этому Роб Пайк думал, что сишники подтянутся, и был даже удивлен, что Go юзают питонисты
Roman
И вот это n = obj.GetJobState().Current.LastUpdated выглядит ужасно
aadz
да :) Питонисты же и сиишники :)))
aadz
программирование вобще выглядит ужасно
Roman
Roman
aadz
бесплатный сахар, думаешь, лучше выглядит? :)
aadz
Daniel
Daniel
А для умных все есть же