Болталка PascalABC.NET


#956

Можно было бы поговорить на тему свойства в виде лямбда выражений. Хотя, большой пользы я от них не нахожу. Иногда использую. И я соглашусь, пожалуй, в том, что разработчики против их внедрения. И так уже много чего из C# перетащили. Лично мне достаточно, думаю.


#957

Это как?


#958
type
  TClass = class
    property X: byte -> 0;
  end;
  
begin
end.

Совсем примерно. Я так их представляю в PascalABC.Net. На C# так.


#959

Это ReadOnly свойства?


#960

Нет. Я добавил пример для не readonly свойства по ссылке.


#961

Ясно.


#962

Правда, второй случай мне трудно представить в контексте PascalABC.Net… Разве что так:

type
  TClass = class
    fX: integer;
    property X: integer read -> fX write -> fX := value;
  end;
  
begin
end.

, что по меньшей мере, выглядит странно.


#963

Спасибо, что указали где искать.

Это Справка, а не учебник для первоклашек, не умеющих еще включать мозг.

Справка не должна быть построена по принципу «догадайся сам». В справке все должно явно проговариваться. Тем более среду используют в обучении, где очень важна лаконичная и полная подача информации.


Ошибки на сайте, в справке и прочее
#964

Ошибка в Справочник по языку -> Классы -> Конструкторы:

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

Конструктор занимается исключительно инициализацией данных объекта, а не его созданием.


#965

Такая же… э… как бы культурнее сказать? … ерунда!

type
  Sp=class
  
public

  a:array of integer;
  
  constructor (n:integer);
  begin
    a:=new integer[n];
    a[5]:=55;
  end;
end;

begin
  var x:=new Sp(10);
  x.a[5].Println;
end.

#966

Из Вашего примера я не понял ничего.


#967

Ну что я могу сделать… учите язык! )))


#968

Издеваетесь что ли? Я не понял смысла написанного. Как это подтверждает Вашу точку зрения?


#969

Тогда выражайтесь яснее, что именно вы ни поняли. Когда я читаю “ничего” - я понимаю это именно как “ничего”.

Видно, что конструктор именно создает объект a[n] вызовом new, а затем частично его инициализирует.


#970

Ну так a - поле класса. Оно инициализируется конструктором.


#971

Верно. Но оно и СОЗДАЕТСЯ им же.


#972

Поле создаётся конструктором?


#973

На это сообщение поступили жалобы от участников сообщества, поэтому оно временно скрыто.


#974

Ну и? Я с ним полностью согласен.


#975

Ну вот я и написал программу в опровержение. Можете быть согласны и дальше, но ведь кроме Вас сюдп и другие люди заходят, пусть посмотрят, как оно на самом деле))