The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Доступны два режима работы форума: "Раскрыть нити" и "Свернуть нити".
. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0" +/
Сообщение от qwerty123 (??), 07-Июл-18, 11:26 
>> в Perl вообще нет объектов
>Есть они там. Если они не такие, как в другом ЯП, это не значит, что они не объекты.

Для кого и int объект.

Вообще, определение объекта так себе, на грани исчезновения =)

bless REF,CLASSNAME
bless REF

This function tells the thingy referenced by REF that it is now an object in the CLASSNAME package. If CLASSNAME is omitted, the current package is used. Because a bless is often the last thing in a constructor, it returns the reference for convenience. Always use the two-argument version if a derived class might inherit the method doing the blessing. See perlobj for more about the blessing (and blessings) of objects.

Минимальное описание, без акцессоров

package aObject;

sub construct {
    my ($class, $var1) = @_;
    my $self = {
        var1 => $var1,
    };
    bless $self, $class;
    return $self;
}

1;

package main;

my $objSample = aObject->construct("text");

И шо мы имеем? сыылку на пакет + уникальную цепочку perl переменных.

При этом речь идет сначала о пакете, потом о объекте, потом опять о пакете =)
И по сути это так и есть - perl5-объект есть пакет функций с нечаянно своими данными.
по сути, такая же концнпция в ada (концепция, не реализация), подобный подход для всяких C gObject.

>фундаментальными типами в Perl нет практически ничего общего.

Нет там фундаментальных типов, там фундаментальная магия =)

Внутри perl5 любая переменная представлена структрурой  

20.3 Perl Value Types
20.3.1 Scalar Values

A scalar value (SV) contains the value of the scalar, a reference count, and a bitmask to describe the state of the scalar. The scalar may be an integer value ("IV"), a double ("NV"), a string ("PV" for pointer value), a reference ("RV"), or a special-purpose object ("magical"). We'll discuss magical variables separately.

И эта структура при случае быстро на лету переобувается.

Только не требуйте указать это в *.h/*.c perl5. =)
Только не с утра, только не в субботу, я лучше найду все концы у пачки сваренного спагетти =)

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0, opennews, 05-Июл-18, 23:49  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру