Решил почитать книгу от Добовицки. Дошёл до главы 2.1 "Лямбда-функции". И, мозг взорвался. На сколько помню, в C# нет лямбда-функций. В C# есть лямбда-выражения (lambda expression) и анонимные методы. При этом лямбда-выражения это просто краткая форма записи (синтаксический сахар) анонимного метода.
Второй раз мозг лопнул на фразе:
> Это блоки кода, записываемые в одну строку внутри более крупного метода, которые можно задействовать как отдельные методы.
Если речь о лямбда-выражении, то кто мешает записать "блок кода" в несколько строк?
Указано:
> Перевод на русский язык ООО «Прогресс книга», 2025.
Программирование - это чёткая логика. Нельзя - значит нельзя. Можно, но сложно - значит требует каких то накладных расходов и времени. Пишите нормально - и будут Вам плюсовать.
Можно зайти с другой стороны.
Как говорил один учитель "первоклашкам я могу сначала доказать, что земля плоская, потом доказать, что земля круглая, а потом - что я оба раза был прав". Но, я не первоклашка. Дойдя до первого бреда, дальше читать не буду. И, как показывает количество минусов к статье - другие читатели то же не первоклашки. Проявите больше уважения к читателям. И, да - это сложно.
Где вы увидели, что я утверждал, будто бы Возняк чип делал? Поклёп.
Смысл моего послания - в 1976 году Возняк собрал компьютер, который по производительности сопоставим с MikBoy. Т.е. с устройством, собранным в гараже энтузиастами в 1976-м году. А не с PlayStation 4, созданной в 2013.
Так что, корявая аналогия не у меня...
P.S. С удовольствием куплю MikBoy, если у него будет цена такая же, как у приставки с ретро-играми SUP.
Защита от мутаций. Любая попытка изменить поле внутри метода — ошибка компиляции.
Враньё. Наружу, конечно, изменения не уйдут. Но, если по in передать экземпляр класса, то внутри метода меняй сколько угодно - ни чего тебе компилятор не скажет.
После 10-ти лет работы с Ораклом попервой коробило от "person == null". Ничего, потом привык :) Сейчас в c# можно "person is null", что на мой взгляд гораздо более изящно, чем простое сравнение. Соглашусь, что это чистой воды вкусовщина. Но, в том и прелесть - пишите, как нравится вам!
А кто вопросом на вопрос отвечает?
Пол года прошло с момента, как новость выпустили. Купить уже можно?
Нет в C# лямбда-функции. От слова "совсем". А если в оригинале написано "лямбда-функция" - значит, автор книги занимается ненаучной фантастикой.
Хотя, что то я проглючил... нет в книге ни какой ошибки. Автор всё правильно написал:
значение параметра (ссылка на объект StringBuilder) передается по значению.Ни какой опечатки нет. А код:
builder.Append("hello");это изменение самой ссылки, а изменение данных по ссылке...
Решил почитать «C# для профессионалов: тонкости программирования» Джон Скит.
Проверяем:
using System.Text;StringBuilder builder_ = new("Скит, ");AppendHello(builder_);
Console.WriteLine(builder_.ToString());void AppendHello(StringBuilder builder){
builder.Append("hello");
}
Результат:
Скит, hello
Т.е. "это изменение ВИДНО в вызывающем коде". Собственно, что произошло? По значению передана ссылка.
В книге опечатка? Ошибка в переводе?
Решил почитать книгу от Добовицки. Дошёл до главы 2.1 "Лямбда-функции". И, мозг взорвался. На сколько помню, в C# нет лямбда-функций. В C# есть лямбда-выражения (lambda expression) и анонимные методы. При этом лямбда-выражения это просто краткая форма записи (синтаксический сахар) анонимного метода.
Второй раз мозг лопнул на фразе:
> Это блоки кода, записываемые в одну строку внутри более крупного метода, которые можно задействовать как отдельные методы.
Если речь о лямбда-выражении, то кто мешает записать "блок кода" в несколько строк?
Указано:
> Перевод на русский язык ООО «Прогресс книга», 2025.
Может, мне какой то не тот перевод попался?
Программирование - это чёткая логика. Нельзя - значит нельзя. Можно, но сложно - значит требует каких то накладных расходов и времени. Пишите нормально - и будут Вам плюсовать.
Можно зайти с другой стороны.
Как говорил один учитель "первоклашкам я могу сначала доказать, что земля плоская, потом доказать, что земля круглая, а потом - что я оба раза был прав". Но, я не первоклашка. Дойдя до первого бреда, дальше читать не буду. И, как показывает количество минусов к статье - другие читатели то же не первоклашки. Проявите больше уважения к читателям. И, да - это сложно.
Дочитал до:
> программу вы можете запустить только целиком
перемотал вниз, увидел, что уже заминусовали, порадовался за автора. Дальше читать не буду.
И чинить роботов должен робот.
Обслуживать робота должен другой робот.
От всей души - поздравляю. Вот так, шажочек за шажочком.
А будет ли он - релиз? Один рыжий уже гибкие планшеты наобещал...
Где вы увидели, что я утверждал, будто бы Возняк чип делал? Поклёп.
Смысл моего послания - в 1976 году Возняк собрал компьютер, который по производительности сопоставим с MikBoy. Т.е. с устройством, собранным в гараже энтузиастами в 1976-м году. А не с PlayStation 4, созданной в 2013.
Так что, корявая аналогия не у меня...
P.S. С удовольствием куплю MikBoy, если у него будет цена такая же, как у приставки с ретро-играми SUP.
ОЗУ 16, процессор 32 мГц - это не PlayStation 4. Это уровня первого ПК, который в гараже Возняк делал. Или, уровень Денди...
Декан какого именно факультета? Факультета "исследования телепортации" или "создания машины времени"?
В том то и дело, что In ни к полям структуры, ни к полям класса отношения не имеет.
Почему "поле"? Может, тут надо слово "поле" поменять на "параметр"?
Защита от мутаций. Любая попытка изменить поле внутри метода — ошибка компиляции.
Враньё. Наружу, конечно, изменения не уйдут. Но, если по in передать экземпляр класса, то внутри метода меняй сколько угодно - ни чего тебе компилятор не скажет.
После 10-ти лет работы с Ораклом попервой коробило от "person == null". Ничего, потом привык :) Сейчас в c# можно "person is null", что на мой взгляд гораздо более изящно, чем простое сравнение. Соглашусь, что это чистой воды вкусовщина. Но, в том и прелесть - пишите, как нравится вам!