LINUX.ORG.RU

История изменений

Исправление kaldeon, (текущая версия) :

Раз уж речь зашла про дженерики, отвечу на челлендж @hateyoufeel из старого треда. Вот так будет написан аналогичный код.

Ещё есть такой пример, где меньше магии.

Коллекции в Го не реализуют никакие интерфейсы (и не должны), поэтому если мы хотим какой-то Iterable, то неизбежно нужны дополнительный стейт и обёртка. Я написал самую короткую просто для примера. Красивая обёртка в первом примере.

Компилятор не может сам вывести ограничение по HasNext/Next, но мы его можем явно указать.

Перегрузки операторов — non-goal языка, а поддержка + реализуется перечислением встроенных типов, которые можно складывать.

Не упускайте из виду то, насколько чище и выразительнее выглядят первый пример на Го.

Fun fact: я до этого никогда не работал с дженериками в Го. Да и в других языках тоже.

Исправление kaldeon, :

Раз уж речь зашла про дженерики, отвечу на челлендж @hateyoufeel из старого треда. Вот так будет написан аналогичный код.

Ещё есть такой пример, где меньше магии.

Коллекции в Го не реализуют никакие интерфейсы (и не должны), поэтому если мы хотим какой-то Iterable, то неизбежно нужны дополнительный стейт и обёртка. Я написал самую короткую просто для примера. Красивая обёртка в первом примере.

Компилятор не может сам вывести ограничение по HasNext/Next, но мы его можем явно указать.

Что касается перегрузки операторов, то это non-goal языка, а поддержка + реализуется перечислением встроенных типов, которые можно складывать.

Не упускайте из виду то, насколько чище и выразительнее выглядят первый пример на Го.

Fun fact: я до этого никогда не работал с дженериками в Го. Да и в других языках тоже.

Исправление kaldeon, :

Раз уж речь зашла про дженерики, отвечу на челлендж @hateyoufeel из старого треда. Вот так будет написан аналогичный код.

Ещё есть такой пример, где меньше магии.

Коллекции в Го не реализуют никакие интерфейсы (и не должны), поэтому если мы хотим какой-то Iterable, то нужно писать обёртку. Я написал самую короткую просто для примера. Красивая обёртка в первом примере.

Компилятор не может сам вывести ограничение по HasNext/Next, но мы его можем явно указать.

Что касается перегрузки операторов, то это non-goal языка, а поддержка + реализуется перечислением встроенных типов, которые можно складывать.

Не упускайте из виду то, насколько чище и выразительнее выглядят первый пример на Го.

Fun fact: я до этого никогда не работал с дженериками в Го. Да и в других языках тоже.

Исправление kaldeon, :

Раз уж речь зашла про дженерики, отвечу на челлендж @hateyoufeel из старого треда. Вот так будет написан аналогичный код.

Ещё есть такой пример, где меньше магии.

По умолчанию коллекции голанга не реализуют никакие интерфейсы (и не должны), поэтому если мы хотим какой-то Iterable, то нужно писать обёртку. Я написал самую короткую просто для примера. Красивая обёртка в первом примере.

Компилятор не может сам вывести ограничение по HasNext/Next, но мы его можем явно указать.

Что касается перегрузки операторов, то это non-goal языка, а поддержка + реализуется перечислением встроенных типов, которые можно складывать.

Не упускайте из виду то, насколько чище и выразительнее выглядят первый пример на Го.

Fun fact: я до этого никогда не работал с дженериками в Го. Да и в других языках тоже.

Исправление kaldeon, :

Раз уж речь зашла про дженерики, отвечу на челлендж @hateyoufeel из старого треда. Вот так будет написан аналогичный код.

Ещё есть такой пример, где меньше магии.

По умолчанию коллекции голанга не реализуют никакие интерфейсы (и не должны), поэтому если мы хотим какой-то Iterable, то нужно писать обёртку. Я написал самую короткую просто для примера. Красивая обёртка в первом примере.

Компилятор не может сам вывести ограничение по HasNext/Next, но мы его можем явно указать.

Что касается перегрузки операторов, то это non-goal языка, а поддержка + реализуется перечислением встроенных типов, которые можно складывать.

Не упускайте из виду то, насколько чище и выразительнее выглядят оба примера на Го.

Fun fact: я до этого никогда не работал с дженериками в Го. Да и в других языках тоже.

Исправление kaldeon, :

Раз уж речь зашла про дженерики, отвечу на челлендж @hateyoufeel из старого треда. Вот так будет написан аналогичный код.

Ещё есть такой пример, где меньше магии.

По умолчанию коллекции голанга не реализуют никакие интерфейсы (и не должны), поэтому если мы хотим какой-то Iterable, то нужно писать обёртку. Я написал самую короткую просто для примера. Красивая обёртка в первом примере.

Компилятор не может сам вывести ограничение по HasNext/Next, но мы его можем явно указать.

Что касается перегрузки операторов, то это non-goal языка, а поддержка + реализуется перечислением встроенных типов, которые можно складывать.

Не упускайте из виду то, насколько чище и выразительнее выглядит пример на Го.

Fun fact: я до этого никогда не работал с дженериками в Го. Да и в других языках тоже.

Исправление kaldeon, :

Раз уж речь зашла про дженерики, отвечу на челлендж @hateyoufeel из старого треда. Вот так будет написан аналогичный код.

Ещё есть такой пример, где меньше магии.

По умолчанию коллекции голанга не реализуют никакие интерфейсы (и не должны), поэтому если мы хотим какой-то Iterable, то нужно писать обёртку. Я написал самую короткую просто для примера. Красивая обёртка в первом примере.

Компилятор не может сам вывести ограничение по HasNext/Next, но мы его можем явно указать.

Что касается перегрузки операторов, то это non-goal языка, а поддержка + реализуется перечислением встроенных типов, которые можно складывать.

Fun fact: я до этого никогда не работал с дженериками в Го. Да и в других языках тоже.

Fun fact 2: не упускайте из виду то, насколько чище и выразительнее выглядит пример на Го.

Исправление kaldeon, :

Раз уж речь зашла про дженерики, отвечу на челлендж @hateyoufeel из старого треда. Вот так будет написан аналогичный код.

Ещё есть такой пример, где меньше магии.

По умолчанию коллекции голанга не реализуют никакие интерфейсы (и не должны), поэтому если мы хотим какой-то Iterable, то нужно писать обёртку. Я написал самую короткую просто для примера. Красивая обёртка в первом примере.

Компилятор не может сам вывести ограничение по HasNext/Next, но мы его можем явно указать.

Что касается перегрузки операторов, то это non-goal языка, а поддержка + реализуется перечислением встроенных типов, которые можно складывать.

Fun fact: я до этого никогда не работал с дженериками в Го. Да и в других языках тоже.

Исправление kaldeon, :

Раз уж речь зашла про дженерики, отвечу на челлендж @hateyoufeel из старого треда. Вот так будет написан аналогичный код.

Ещё есть такой пример, где меньше магии.

По умолчанию коллекции голанга не реализуют никакие интерфейсы (и не должны), поэтому если мы хотим какой-то Iterable, то нужно писать обёртку. Я написал самую короткую просто для примера. Красивая обёртка в первом примере.

Компилятор не может сам вывести ограничение по HasNext/Next, но мы его можем явно указать.

Что касается перегрузки операторов, то это non-goal языка, а поддержка + реализуется перечислением встроенных операторов, которые можно складывать.

Fun fact: я до этого никогда не работал с дженериками в Го. Да и в других языках тоже.

Исправление kaldeon, :

Раз уж речь зашла про дженерики, отвечу на челлендж @hateyoufeel из старого треда. Вот так будет написан аналогичный код.

Ещё есть такой пример, где меньше магии.

То есть если мы захотим работать только с определёнными методами (HasNext/Next), то компилятор это сам не сможет вывести, но мы можем указать ограничение явно.

По умолчанию коллекции голанга не реализуют никакие интерфейсы (и не должны), поэтому если мы хотим какой-то Iterable, то нужно писать обёртку. Я написал самую короткую просто для примера. Красивая обёртка в первом примере.

Что касается перегрузки операторов, то это non-goal языка, а поддержка + реализуется перечислением встроенных операторов, которые можно складывать.

Fun fact: я до этого никогда не работал с дженериками в Го. Да и в других языках тоже.

Исправление kaldeon, :

Раз уж речь зашла про дженерики, отвечу на челлендж @hateyoufeel из старого треда. Вот так будет написан аналогичный код.

Ещё есть такой пример, где меньше магии.

То есть если мы захотим работать только с определёнными методами (HasNext/Next), то компилятор это сам не сможет вывести, но мы можем указать ограничение явно.

По умолчанию коллекции голанга не реализуют никакие интерфейсы (и не должны), поэтому если мы хотим какой-то Iterable, то нужно писать обёртку. Я написал самую короткую просто для примера. Красивая обёртка в первом примере. Обе, кстати, автоматически сохраняют информацию о типах.

Что касается перегрузки операторов, то это non-goal языка, а поддержка + реализуется перечислением встроенных операторов, которые можно складывать.

Fun fact: я до этого никогда не работал с дженериками в Го. Да и в других языках тоже.

Исправление kaldeon, :

Раз уж речь зашла про дженерики, отвечу на челлендж @hateyoufeel из старого треда. Вот так будет написан аналогичный код.

Ещё есть такой пример, где меньше магии.

То есть если мы захотим работать только с определёнными методами (HasNext/Next), то компилятор это сам не сможет вывести, но мы можем указать ограничение явно.

По умолчанию коллекции голанга не реализуют никакие интерфейсы (и не должны), поэтому если мы хотим какой-то Iterable, то нужно писать обёртку. Я написал самую короткую просто для примера. Красивая обёртка в первом примере. Обе, кстати, автоматически сохраняют информацию о типах.

Что касается перегрузки операторов, то это non-goal языка, а поддержка + реализуется перечислением встроенных операторов, которые можно складывать.

Fun fact: я до этого никогда не работал с дженериками в Го. Да и в других языках тоже.

Исправление kaldeon, :

Раз уж речь зашла про дженерики, отвечу на челлендж @hateyoufeel из старого треда. Вот так будет написан аналогичный код.

Ещё есть такой пример, где меньше магии.

То есть если мы захотим работать только с определёнными методами (HasNext/Next), то компилятор это сам не сможет вывести, но мы можем указать ограничение явно.

По умолчанию коллекции голанга не реализуют никакие интерфейсы (и не должны), поэтому если мы хотим какой-то Iterable, то нужно писать обёртку. Я написал самую короткую просто для примера. Красивая обёртка в первом примере. Обе, кстати, автоматически сохраняют информацию о типах.

Что касается перегрузки операторов, то это non-goal языка, а поддержка + реализуется перечислением встроенных операторов, которые можно складывать.

Fun fact: я до этого никогда не работал с дженериками в Го. Да и в других языках тоже.

Исправление kaldeon, :

Раз уж речь зашла про дженерики, отвечу на челлендж @hateyoufeel из старого треда. Вот так будет написан аналогичный код.

Ещё есть такой пример, где меньше магии.

То есть если мы захотим работать только с определёнными методами (HasNext/Next), то компилятор это сам не сможет вывести, но мы можем указать ограничение явно.

По умолчанию коллекции голанга не реализуют никакие интерфейсы (и не должны), поэтому если мы хотим какой-то Iterable, то нужно писать обёртку. Я написал самую короткую просто для примера. Красивая обёртка в первом примере. Обе, кстати, автоматически сохраняют информацию о типах.

Что касается перегрузки операторов, то это non-goal языка, а поддержка + реализуется перечислением встроенных операторов, которые можно складывать.

Fun fact: я до этого никогда не работал с дженериками в Го. Да и в других языках тоже.

Исходная версия kaldeon, :

Раз уж речь зашла про дженерики, отвечу на челлендж @hateyoufeel из старого треда. Вот так будет написан аналогичный код.

Ещё есть такой пример, где меньше магии.

То есть если мы захотим работать только с определёнными методами (HasNext/Next), то компилятор это сам не сможет вывести, но мы можем указать ограничение явно.

По умолчанию коллекции голанга не реализуют никакие интерфейсы (и не должны), поэтому если мы хотим какой-то Iterable, то нужно писать обёртку. Я написал самую короткую просто для примера. Красивая обёртка в первом примере. Обе, кстати, автоматически сохраняют информацию о типах.

Что касается перегрузки операторов, то это non-goal языка, а поддержка + реализуется перечислением встроенных операторов, которые можно складывать.