@gogolang

Страница 1367 из 1630
Daniel
05.09.2018
19:19:22
я все же думаю, что const контейнера должен распространяться и на содержимое

но!

Google
Daniel
05.09.2018
19:20:36
с моей точки зрения const модификатор не типа, но экземпляра

Alexander
05.09.2018
19:20:58
Ну, вобще-то да. Уж если мы говорим что контейнер не меняется, то это как раз по поводу содержимого и речь

И вобще, даже при косвенном доступе (любых степеней вложенности) объект, объявленный как конст, или его часть. не может по идее быть lvalue

Daniel
05.09.2018
19:33:04
это тут уже было сегодня дважды

Roman
05.09.2018
19:36:42
я все же думаю, что const контейнера должен распространяться и на содержимое
да, в этом есть смысл. если учесть что slice это всего лишь type slice struct { p *[n]array } тогда поля const object'а должны быть тоже const type Object struct { Parent *Object } func main() { const o := &Object{} o.Parent = &Object{} // Compile-time error o.NonConstMethod() // Compile-time error o.Parent.NonConstMethod() // Compile-time error } в чём, собственно, есть смысл.

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

Wingman
05.09.2018
19:41:00
в го же планируют вводить check/handle паттерны?

Daniel
05.09.2018
19:41:23
однако, что если нам нужен мутабельный слайс немутабельных объектов?
с моей точки зрения const модификатор не типа, но экземпляра

Wingman
05.09.2018
19:41:30
чего вы так упарываетесь по "аа мы всё сломаем, нельзя новые кейворды"? чек/хендл сломает в 100500 раз больше, чем какой-нибудь mut :)

Daniel
05.09.2018
19:42:08
чек-хендл придумал кокс, и у него серьезные шансы попасть в язык

а const придумал Роман (не целиком, но этот конкретный пропозал), и у него шансов мало, разве что он всем вот прям понравится-понравится

Wingman
05.09.2018
19:43:54
Ясно :)

Daniel
05.09.2018
19:44:26
я вот все же думаю, что начинать надо с комментов-аннотаций, и линтера

Google
Alexander
05.09.2018
19:44:29
чего вы так упарываетесь по "аа мы всё сломаем, нельзя новые кейворды"? чек/хендл сломает в 100500 раз больше, чем какой-нибудь mut :)
почему сломает? Просто не будет комплироваться старыми компиляторами. А проверять ошибки, как и раньше, никто запретить не может

Roman
05.09.2018
19:45:10
а const придумал Роман (не целиком, но этот конкретный пропозал), и у него шансов мало, разве что он всем вот прям понравится-понравится
да уж)) const скорее придумал Stroustrup (или откуда он там взялся) в C++, я лишь пытаюсь грамотно перевести его в Go

Wingman
05.09.2018
19:45:12
Nyan
05.09.2018
19:45:58
почему сломает? Просто не будет комплироваться старыми компиляторами. А проверять ошибки, как и раньше, никто запретить не может
потому что есть переменные с такими названиями, а именами переменных не могут быть ключевые слова

Alexander
05.09.2018
19:46:23
С чек/хендл хендл может быть только проблема у тех буратин, кто ошибку возвращал не последним значением

Wingman
05.09.2018
19:46:50
Я могу запросто переменную/функцию сейчас и чек, и хендл назвать

И оно сломается

Semyon
05.09.2018
19:48:05
я вот конечно не эксперт но в целом имутабельность очень мощная вещь, но выглядит уж очень накрученно по синтаксису

И оно сломается
Можно решить явным импортом в начале файла (например)

Roman
05.09.2018
19:48:39
я вот все же думаю, что начинать надо с комментов-аннотаций, и линтера
да, в этом есть смысл. Можно с этого начать, правда я Go линтеры ещё не писал, сложно оценить насколько это будет сложно и затратно по времени. можно добавить эту идею в пропосал как PoC implementation, осталось только придумать стандарт/формат аннотаций, есть по этому поводу идеи?

Daniel
05.09.2018
19:49:17
есть

к переменным и типам - теги

Roman
05.09.2018
19:50:51
к переменным и типам - теги
а если чуть более конкретно?

Daniel
05.09.2018
19:50:58
к параметрам - комменты того же формата, что и теги

завтра конкретно :)

Roman
05.09.2018
19:51:20
Daniel
05.09.2018
19:52:05
таааак

а почему мы, собственно, так хотим ключевое слово?

у нас же есть возможность алиасить типы!

Google
Roman
05.09.2018
19:53:42
Daniel
05.09.2018
19:53:54
type intConst int // immutable

и все, пользуйся на здоровье, пиши линтер

может быть даже type intConst = int // immutable

Roman
05.09.2018
19:56:18
type intConst int // immutable
аа, вон оно чё.. интересное предложение. Надо подумать

Semyon
05.09.2018
20:10:55
Линтер это клёво но он же вас оставит без возможности оптимизаций компилятора

Daniel
05.09.2018
20:13:23
а мы для начала

и будем добиваться включения в язык

Semyon
05.09.2018
20:14:26
Давайте сразу ещё null safety тогда

Daniel
05.09.2018
20:15:27
я не понимаю, при чем тут null safety

Мерлин
05.09.2018
20:21:46
я не понимаю, при чем тут null safety
так же вполне возможно реализовать на уровне линтера и с помощью алиасов

Daniel
05.09.2018
20:26:40
а как? я всегда думал, что это runtime проблема

Мерлин
05.09.2018
20:29:48
а как? я всегда думал, что это runtime проблема
Неа В том же kotlin это реализовано на этапе компиляции

Daniel
05.09.2018
20:33:59
есть подозрение, что у нас все же другой язык :) в котлине негде взять null, кроме как явно его присвоить

у нас - масса вариантов

Artem
05.09.2018
20:35:03
как ресивер может узнать что сендер закрыл канал?

Мерлин
05.09.2018
20:35:06
есть подозрение, что у нас все же другой язык :) в котлине негде взять null, кроме как явно его присвоить
у нас можно трассировать наличие nil из "корней", типа var, init и main функции из стандартной библиотеки можно и нужно аннотировать отдельно ничего невозможного в принципе нет

Dorian
05.09.2018
20:35:31
Коллеги. В общем насоздовал несколько интерфейсов по 1-2 метода каждый. Имплементировал их нужным структурам. Есть метод, возвращающий один из этих интерфейсов. На выходе мне надо сделать действие, пренадлежащее другому интерфейсу. Не зашкварно ли так делать? s.(OtherInterface).OtherInterfaceMethod()

Artem
05.09.2018
20:35:39
for range перестанет выполняться?

Google
Daniel
05.09.2018
20:35:53
Artem
05.09.2018
20:36:01
понял

Alexey
05.09.2018
20:36:41
for range перестанет выполняться?
перестанет и выйдет из цикла

Admin
ERROR: S client not available

Artem
05.09.2018
20:37:36
Daniel
05.09.2018
20:37:39
не уверен, что кто-=то захочет на это тратить время

Dorian
05.09.2018
20:38:43
используй композицию интерфейсов https://play.golang.org/p/tAJxyIs0rxi
Не использовал, потому что не всем структруам нужны все методы

Мерлин
05.09.2018
20:39:06
не уверен, что кто-=то захочет на это тратить время
meh это как с любыми другими линтерами нужно быть достаточно сумашедшим чтобы такое поддерживать

Dorian
05.09.2018
20:40:53
используй композицию интерфейсов https://play.golang.org/p/tAJxyIs0rxi
А мой вариант плох с точки зрения культуры кода?

Про производительность речи не веду

Мерлин
05.09.2018
20:41:49
А мой вариант плох с точки зрения культуры кода?
паникой в случае если прошляпил типы

Dorian
05.09.2018
20:42:06
паникой в случае если прошляпил типы
Это сугубо на свою совесть оставляю, согласен

В целом да, наверное лучше композицию, чем ловить такие моменты. Спасибо

Artem
05.09.2018
21:53:41
вопрос такой. Мне нужно параллельно выполнить несколькими воркерами набор тасков вот я и пишу пул. Как принято в го - шедулеров раскидывать по каналами таски, из которых читают воркеры, или просто очередь пошарить между воркерами и через локи каждый пусть читает сам?

undiabler
05.09.2018
21:57:02
1 канал и воркеры которые из него берут себе работу

Artem
05.09.2018
21:58:21
огонь, так даже лучше

Google
Roman
05.09.2018
22:27:39
https://groups.google.com/forum/m/#!topic/golang-codereviews/qJHZTBYyRuQ

Roman
06.09.2018
01:03:00
https://youtu.be/1B71SL6Y0kA

Maruf
06.09.2018
02:24:29
Всем салют!Вопрос таковой 1.Как выполнить аутентификацию админа?так чтобы посторонних перенаправлял в корневой URL роуты: "/v1/admin/login" "/v1/admin/application "/v1/"

Глеб
06.09.2018
06:39:35


проблем с доступностью не будет?

Eldar
06.09.2018
06:41:09
названия видимо придумывала секретарша

Daniel
06.09.2018
06:42:23
Я вот не понял вопрос

Глеб
06.09.2018
06:43:50
почему в Go принято писать названия значений в структурах с большой буквы? Это чисто стилистика или есть причины?

andrew
06.09.2018
06:45:10
Глеб
06.09.2018
06:50:33
да, уже третий пет.проект на го собираю, json с клинтом по ws гоняю и думаю нагенерить структуры с TypeScript получается удобней описать структуры например в yaml и нагенерить уже интерфейсы и структуры для go/ts

Po
06.09.2018
07:39:42
Всем привет!

Страница 1367 из 1630