The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск языка программирования Ruby 3.0, opennews (ok), 25-Дек-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


92. "Выпуск языка программирования Ruby 3.0"  –1 +/
Сообщение от Аноним (129), 25-Дек-20, 22:40 
> самые банальные вещи с какими-нибудь графами или другими структурами сложнее map сделать,

https://pkg.go.dev/gonum.org/v1/gonum/graph
Осторожно, береги шаблон.

Ответить | Правка | К родителю #60 | Наверх | Cообщить модератору

118. "Выпуск языка программирования Ruby 3.0"  +2 +/
Сообщение от rewlad (?), 27-Дек-20, 01:32 
Проверки типов нет -- Node[Foo] / Node[Bar] не отличаются.

И да, что делать непонятно: выходит или не-по-гошески сложно, или заметно убого

Ответить | Правка | Наверх | Cообщить модератору

123. "Выпуск языка программирования Ruby 3.0"  +/
Сообщение от Аноним (129), 27-Дек-20, 13:23 
Не понял, что ты подразумеваешь под Node[Foo] и Node[Bar], но если тебе нужна проверка типов (если у тебя ноды в одном графе имеют разные типы, что не самый типичный вариант использования), берёшь и делаешь её. Встроенные средства в Go для этого есть, если ты не в курсе, и даже больше одного.
Ответить | Правка | Наверх | Cообщить модератору

119. "Выпуск языка программирования Ruby 3.0"  +/
Сообщение от Аноним (120), 27-Дек-20, 04:06 
Ага, и как мне там заиметь ноды с нужными мне данными? Без всех этих диких type assertions.
Ответить | Правка | К родителю #92 | Наверх | Cообщить модератору

122. "Выпуск языка программирования Ruby 3.0"  +/
Сообщение от Аноним (129), 27-Дек-20, 13:19 
Создать для них тип, реализующий интерфейс graph.Node, очевидно. Надо рассказывать, как это делается, или сам найдёшь нужную страничку в "go для чайников"?
Ответить | Правка | Наверх | Cообщить модератору

126. "Выпуск языка программирования Ruby 3.0"  +/
Сообщение от Аноним (120), 27-Дек-20, 16:04 
Ага, и потом при каждом чихе или попытке поработать с графом нужно делать то что в go называется type assertion. value, ok := node.(MyOwnNodeType)
И по большому счёту нужно ещё проверять ok и делать что-то на случай если где-то был баг и в граф попал не "MyOwnNodeType". Выносим компайл тайм проверки в рантайм. 10/10 восхитительное решение проблемы.
Ответить | Правка | Наверх | Cообщить модератору

127. "Выпуск языка программирования Ruby 3.0"  –1 +/
Сообщение от Аноним (129), 27-Дек-20, 17:24 
> Ага, и потом при каждом чихе или попытке поработать с графом нужно делать то что в go называется type assertion. value, ok := node.(MyOwnNodeType)

Ну вот не надо преувиличивать. При работе с собственно графом это не требуется. Когда нужно работать с содержимым узла — да, требуется. Скорее всего, это будет единственный type assertion в функции. Не вижу в этом ничего криминального.

> Выносим компайл тайм проверки в рантайм. 10/10 восхитительное решение проблемы.

Это решение называется «динамическая типизация». Её использование в сабже тебя не смущает?

Ответить | Правка | Наверх | Cообщить модератору

128. "Выпуск языка программирования Ruby 3.0"  +/
Сообщение от Аноним (129), 27-Дек-20, 17:25 
Преувеличивать, конечно же. Опечатался.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру