Pull to refresh
3
Сергей@S-type

Программист

Send message

Пол года прошло с момента, как новость выпустили. Купить уже можно?

Нет в 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.

А есть примеры больших серьёзных контор, которые РРРРААЗ и как выпустили с нуля и первой попытки что-то уровня, скажем PlayStation 4 со своими чипами?

ОЗУ 16, процессор 32 мГц - это не PlayStation 4. Это уровня первого ПК, который в гараже Возняк делал. Или, уровень Денди...

Декан факультета рассказал СМИ, что за 20 лет не слышал о такой структуре, но есть клуб, который себя так зовёт.

Декан какого именно факультета? Факультета "исследования телепортации" или "создания машины времени"?

В том то и дело, что In ни к полям структуры, ни к полям класса отношения не имеет.

Любая попытка изменить поле внутри метода — ошибка компиляции.

Почему "поле"? Может, тут надо слово "поле" поменять на "параметр"?

  1. Защита от мутаций. Любая попытка изменить поле внутри метода — ошибка компиляции.

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

После 10-ти лет работы с Ораклом попервой коробило от "person == null". Ничего, потом привык :) Сейчас в c# можно "person is null", что на мой взгляд гораздо более изящно, чем простое сравнение. Соглашусь, что это чистой воды вкусовщина. Но, в том и прелесть - пишите, как нравится вам!

1
23 ...

Information

Rating
6,546-th
Location
Краснодар, Краснодарский край, Россия
Date of birth
Registered
Activity