Сообщение Re[42]: Сложности выбора или часть не может быть лучше целог от 24.09.2023 9:33
Изменено 24.09.2023 10:06 Serginio1
Re[42]: Сложности выбора или часть не может быть лучше целог
Здравствуйте, rudzuk, Вы писали:
S>> На самом деле использование перегрузки операторов где попало это и есть костылю. В С++ даже битовые операции применят ко всему, что угодно.
S>> Вот это и есть костыль.
S>> Для примера возьмем ту же самую сортировку и <>=/
S>> Те же строки по разному сравниваются, а у класса можно сортировать по разным свойствам итд.
R>Давай без бла-бла. Код покажи, на божественных дженериках.
https://learn.microsoft.com/ru-ru/dotnet/api/system.collections.generic.list-1.sort?view=netcore-3.1
S>> Я имел ввиду, что использование математических операций это для числел, коллекции, словари с вычислением Hash кода, который может быть различным даже для одного класса, в зависимости, какие поля хотим сравнивать итд.
R>Да знаю я чего ты имел ввиду: если шарп не могет, то это и не нужно Все же просто До генерикматха и вычислительные операции в дженериках не нужны были, правда же?
S>> Ты вот приведи пример шаблона где могут складываться и строки и Rect
R>Я его тебе уже показал: left + right, если ты не понял.
А я тебе показал
Я тебе уже ссылки приводил https://learn.microsoft.com/en-us/dotnet/standard/generics/math
Реализуй для своего класса IAdditionOperators
https://learn.microsoft.com/en-us/dotnet/api/system.numerics.iadditionoperators-3?view=net-7.0
И используй если тебе этого хочется.
Но ты покажи реальный шаблон который не просто складывает, а что то делает полезное складывая для строк и Rect.
S>> S>> Ну тогда и не говори, что IDE не нужна.
S>> R>Я этого никогда не говорил, не приписывай мне свои фантазии.
S>> Какая-то странная логика... Завтра выйдет среда с починенным интелисенсом и язык сразу станет нужен? [А по мне так, нахрен не нужен язык, где нормальную шаблонизацию заменили огороженными симулякрами и окостылили со всех сторон. Где для того, чтобы разобраться в коде, нужно запустить монстроидную IDE, без которой хер ты его нормально почитаешь.
R>И где ты видишь слова о том, что IDE не нужна? Тут сказано, что язык не нужен, если его без IDE читать невозможно
Мне не нужен язык с монструозной IDE.
Не монструозная IDE это блокнот.
При этом это был ответ на
S> Ну и нахрен такой язык нужен если нет нормального среды разработки.
S>> На самом деле использование перегрузки операторов где попало это и есть костылю. В С++ даже битовые операции применят ко всему, что угодно.
S>> Вот это и есть костыль.
S>> Для примера возьмем ту же самую сортировку и <>=/
S>> Те же строки по разному сравниваются, а у класса можно сортировать по разным свойствам итд.
R>Давай без бла-бла. Код покажи, на божественных дженериках.
https://learn.microsoft.com/ru-ru/dotnet/api/system.collections.generic.list-1.sort?view=netcore-3.1
S>> Я имел ввиду, что использование математических операций это для числел, коллекции, словари с вычислением Hash кода, который может быть различным даже для одного класса, в зависимости, какие поля хотим сравнивать итд.
R>Да знаю я чего ты имел ввиду: если шарп не могет, то это и не нужно Все же просто До генерикматха и вычислительные операции в дженериках не нужны были, правда же?
S>> Ты вот приведи пример шаблона где могут складываться и строки и Rect
R>Я его тебе уже показал: left + right, если ты не понял.
А я тебе показал
Я тебе уже ссылки приводил https://learn.microsoft.com/en-us/dotnet/standard/generics/math
static T Add<T>(T left, T right)
where T : INumber<T>
{
return left + right;
}
Реализуй для своего класса IAdditionOperators
https://learn.microsoft.com/en-us/dotnet/api/system.numerics.iadditionoperators-3?view=net-7.0
И используй если тебе этого хочется.
Но ты покажи реальный шаблон который не просто складывает, а что то делает полезное складывая для строк и Rect.
S>> S>> Ну тогда и не говори, что IDE не нужна.
S>> R>Я этого никогда не говорил, не приписывай мне свои фантазии.
S>> Какая-то странная логика... Завтра выйдет среда с починенным интелисенсом и язык сразу станет нужен? [А по мне так, нахрен не нужен язык, где нормальную шаблонизацию заменили огороженными симулякрами и окостылили со всех сторон. Где для того, чтобы разобраться в коде, нужно запустить монстроидную IDE, без которой хер ты его нормально почитаешь.
R>И где ты видишь слова о том, что IDE не нужна? Тут сказано, что язык не нужен, если его без IDE читать невозможно
Мне не нужен язык с монструозной IDE.
Не монструозная IDE это блокнот.
При этом это был ответ на
S> Ну и нахрен такой язык нужен если нет нормального среды разработки.
Re[42]: Сложности выбора или часть не может быть лучше целог
Здравствуйте, rudzuk, Вы писали:
S>> На самом деле использование перегрузки операторов где попало это и есть костылю. В С++ даже битовые операции применят ко всему, что угодно.
S>> Вот это и есть костыль.
S>> Для примера возьмем ту же самую сортировку и <>=/
S>> Те же строки по разному сравниваются, а у класса можно сортировать по разным свойствам итд.
R>Давай без бла-бла. Код покажи, на божественных дженериках.
https://learn.microsoft.com/ru-ru/dotnet/api/system.collections.generic.list-1.sort?view=netcore-3.1
S>> Я имел ввиду, что использование математических операций это для числел, коллекции, словари с вычислением Hash кода, который может быть различным даже для одного класса, в зависимости, какие поля хотим сравнивать итд.
R>Да знаю я чего ты имел ввиду: если шарп не могет, то это и не нужно Все же просто До генерикматха и вычислительные операции в дженериках не нужны были, правда же?
S>> Ты вот приведи пример шаблона где могут складываться и строки и Rect
R>Я его тебе уже показал: left + right, если ты не понял.
А я тебе показал
Я тебе уже ссылки приводил https://learn.microsoft.com/en-us/dotnet/standard/generics/math
Реализуй для своего класса IAdditionOperators
https://learn.microsoft.com/en-us/dotnet/api/system.numerics.iadditionoperators-3?view=net-7.0
И используй если тебе этого хочется.
Но ты покажи реальный шаблон который не просто складывает, а что то делает полезное складывая для строк и Rect.
И ты как то отмел использование перегрузки операций для различных типов сравнения и сложения.
В итоге придешь к дженериковским интерфейсам или методам.
То есть использование перегрузки операторов нужна для чисел. Во всех остальных случаях ты так же будешь использовать то же что и в дженериках.
Поэтому в C# не пошли твоим путем. Хотя такие предложения были http://rsdn.org/forum/dotnet/7749568.flat
И можно было бы переопределять методы для типа
То есть Zero переопределялся, а operator берутся из класса.
Но отказались.
S>> S>> Ну тогда и не говори, что IDE не нужна.
S>> R>Я этого никогда не говорил, не приписывай мне свои фантазии.
S>> Какая-то странная логика... Завтра выйдет среда с починенным интелисенсом и язык сразу станет нужен? [А по мне так, нахрен не нужен язык, где нормальную шаблонизацию заменили огороженными симулякрами и окостылили со всех сторон. Где для того, чтобы разобраться в коде, нужно запустить монстроидную IDE, без которой хер ты его нормально почитаешь.
R>И где ты видишь слова о том, что IDE не нужна? Тут сказано, что язык не нужен, если его без IDE читать невозможно
Мне не нужен язык с монструозной IDE.
Не монструозная IDE это блокнот.
При этом это был ответ на
S> Ну и нахрен такой язык нужен если нет нормального среды разработки.
S>> На самом деле использование перегрузки операторов где попало это и есть костылю. В С++ даже битовые операции применят ко всему, что угодно.
S>> Вот это и есть костыль.
S>> Для примера возьмем ту же самую сортировку и <>=/
S>> Те же строки по разному сравниваются, а у класса можно сортировать по разным свойствам итд.
R>Давай без бла-бла. Код покажи, на божественных дженериках.
https://learn.microsoft.com/ru-ru/dotnet/api/system.collections.generic.list-1.sort?view=netcore-3.1
S>> Я имел ввиду, что использование математических операций это для числел, коллекции, словари с вычислением Hash кода, который может быть различным даже для одного класса, в зависимости, какие поля хотим сравнивать итд.
R>Да знаю я чего ты имел ввиду: если шарп не могет, то это и не нужно Все же просто До генерикматха и вычислительные операции в дженериках не нужны были, правда же?
S>> Ты вот приведи пример шаблона где могут складываться и строки и Rect
R>Я его тебе уже показал: left + right, если ты не понял.
А я тебе показал
Я тебе уже ссылки приводил https://learn.microsoft.com/en-us/dotnet/standard/generics/math
static T Add<T>(T left, T right)
where T : INumber<T>
{
return left + right;
}
Реализуй для своего класса IAdditionOperators
https://learn.microsoft.com/en-us/dotnet/api/system.numerics.iadditionoperators-3?view=net-7.0
И используй если тебе этого хочется.
Но ты покажи реальный шаблон который не просто складывает, а что то делает полезное складывая для строк и Rect.
И ты как то отмел использование перегрузки операций для различных типов сравнения и сложения.
В итоге придешь к дженериковским интерфейсам или методам.
То есть использование перегрузки операторов нужна для чисел. Во всех остальных случаях ты так же будешь использовать то же что и в дженериках.
Поэтому в C# не пошли твоим путем. Хотя такие предложения были http://rsdn.org/forum/dotnet/7749568.flat
Автор: varenikAA
Дата: 08.06.20
Дата: 08.06.20
interface IMonoid<T>
{
static T Zero{get;}
static T operator+(T t1, T t2)
static T operator*(T t1, T t2)
}
И можно было бы переопределять методы для типа
role IntMonoid extednds int
{
public static int Zero = 0;
}
То есть Zero переопределялся, а operator берутся из класса.
Но отказались.
S>> S>> Ну тогда и не говори, что IDE не нужна.
S>> R>Я этого никогда не говорил, не приписывай мне свои фантазии.
S>> Какая-то странная логика... Завтра выйдет среда с починенным интелисенсом и язык сразу станет нужен? [А по мне так, нахрен не нужен язык, где нормальную шаблонизацию заменили огороженными симулякрами и окостылили со всех сторон. Где для того, чтобы разобраться в коде, нужно запустить монстроидную IDE, без которой хер ты его нормально почитаешь.
R>И где ты видишь слова о том, что IDE не нужна? Тут сказано, что язык не нужен, если его без IDE читать невозможно
Мне не нужен язык с монструозной IDE.
Не монструозная IDE это блокнот.
При этом это был ответ на
S> Ну и нахрен такой язык нужен если нет нормального среды разработки.