Как стать автором
Обновить
2
0.5
Виталий @olivera507224

Разработчик серверного ПО

Отправить сообщение

range не предусматривает наличие ошибки. В текущем виде итератор скорее всего придётся оборачивать какой-нибудь структурой, чтобы проверить на ошибку в итераторе. Но выглядит как не самый удобный костыль, надеюсь с ошибкой ещё что-то надумают.

Кросс-запросы и origin's стоили мне нескольких дней жизни.

Братка, дай обниму...

Тернарник ещё ладно, можно терпеть отсутствие, тем более что с ним можно натворить много эпичных багов. Но вот какой-нибудь сахар для проверки указателя или интерфейса на nil (условное присваивание, условный вызов) был бы прям очень кстати.

Смущают. Но не более чем бесконечные try ... catch.

Да, пример Го я написал с ошибкой.

backwardIterator := iter.Seq[int](func(yield func(int) bool) {
    for i := range 5 
        if !yield(i) {
            return
        }
    }
})

Во так, пожалуй, правильно.

Это всё понятно, к этому вопросов нет. Я негодую скорее оттого, что вместо привычного по другим языкам yield мы получим очень странный yield. И я знаю, почему именно такой yield мы получим, но оттого совсем не легче.

Люблю Go, но. Вот код на Go:


 backwardIterator := iter.Seq[int](func(yield func(int) bool) {
    for i := range 5 {
        v := arr[i]
        if !yield(i, v) {
            return
        }
    }
})

А вот на Питоне:

 def iter():
    for i in range(5):
        yield i

Что-то мне подсказывает, что в плане читаемости Го очень сильно сдаёт позиции. И это если не вспоминать, что он изначально не мог похвастаться наилучшей читаемостью.

Я немного орнул когда увидел как выглядят дженерики, когда их зарелизили. Криво, но в целом терпимо, хотя и есть бесячие нюансы. Но вот грядущие итераторы заставляют меня раз за разом пробивать фейспалмы. Выглядит просто отвратительно.

А что не так с типами словарей?

Когда впервые смотришь на код Го и видишь конструкцию вроде map[string]string, то лицо приобретает выражение лица той девушки из рекламы курсов иностранных языков в Балашихе. Со временем-то, конечно, становится привычно.

Способ декларирования замыкания выглядит ИМХО очень интересно, огромный плюс что декларирование именно явное.

Прошёлся по ридми, выглядит прям очень ГО-подобно, но способ объявления типов словарей расстроил. Опять же ИМХО в го это самая неинтуитивная конструкция.

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

Дык я потому и дописал в конце, что нет претензийк автору. Пост не выглядит как нытьё.

Будем ныть или просто будем делать свою работу, по возможности хорошо?

П. С. Не обвиняю автора в нытье, просто вопрос в никуда.

О, свидетель всего пропавшего, лол) Ты сайтом ошибся, Пикабу в другой стороне.

Хм. Нет, ну чисто технически WSL - это инструмент Винды, поэтому я бы не сказал что прям уж врут, если это действительно так. Но осадочек после такого, конечно, точно останется.

Чувствуется элемент недосказанности :) Какой метод? Что сейчас мешает его написать?

class ReadableService(Protocol, Generic[T]):
    def get_by_id(self, id: int) -> T:
        pass

    def get_all(self) -> list[T]:
        pass


class CrudService(ReadableService, Generic[T], Protocol):
...

В данном случае CrudService намеренно наследует непосредственно Protocol? Так как вижу, что и ReadableService наследует Protocol, значит и CrudService при наследовании ReadableService должен унаследовать Protocol. Сорри за косноязычность.

А я что написал?

Так бан под винду уже вышел же ж.

1 + "1" - 10
1

Пример динамической типизации

Всё же это не пример динамической типизации. Это пример слабой типизации.

В питоне, например, типизация тоже динамическая, но вместе с тем - строгая. Поэтому там подобный код приведёт к выбросу исключения.

Если бы данные были схожими, у меня бы и вопроса не возникло. Ты же не удивляешься, что сложение чисел и конкатенация строк - это совершенно разные понятия и выполняются по-разному, хотя обе операции часто могут быть реализованы оператором +. Исходные данные похожи, а результаты диаметрально противоположны - значит, с черным ящиком что-то не так? Вот и в сравнении права на частную собственность с правом на интеллектуальную человек, которому я отвечал, допустил ту же ошибку - сравнил мягкое с тёплым.

Странное сравнение - частной собственности и интеллектуальной. Совершенно разные разделы права.

Информация

В рейтинге
1 893-й
Откуда
Железнодорожный (Московск.), Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer, Fullstack Developer
Senior
SQL
PostgreSQL
Python
Linux
Docker
.NET Core
Golang
Tarantool
ClickHouse
Fastapi