Subject: wrap a class progr. Добрый день!Помогите корректно перевести указанную фразу в следующем контексте: So far, you have wrapped free functions (that is, non-class methods) as Ruby class methods. You have passed references to the Ruby object by declaring the C functions with the first argument Object. This approach works, but isn't good enough to wrap a C++ class as a Ruby object. To wrap a C++ class, you still use the define_class method, except that you now "templatize" it with the C++ class type Склоняюсь к варианту "обертывание класса". Вроде бы где-то слышал такой перевод выражения, но подтверждающие источники практически отсутствуют. Пока что переведено так: До сих пор вы обертывали в качестве методов классов Ruby свободные функции (т. е. методы, не принадлежащие ни к какому классу). Вы передавали ссылки на объект Ruby путем объявления функций C с первым аргументом Object. Такой подход работает, но он недостаточно хорош для обертывания класса C++ в качестве объекта Ruby. Чтобы обернуть какой-либо класс C++, вы по-прежнему используете метод define_class, но теперь создаете из него шаблон для конкретного типа класса C++. Всем спасибо! |
из встречавшегося: класс-обертка обертка класса/функции обернуть класс/функцию теперь по деталям: остальные места с wrap наверное приемлемы use the define_class method, except that you now "templatize" it with the C++ class type |
overdoze, большое спасибо! |
So far, you have wrapped free functions (that is, non-class methods) as Ruby class methods *** пока что вы в качестве методов для Ruby-класса использовали обертки free функций Это не совсем верно. Это означает, что все методы Ruby-класса это обертки (оболочки) свободных функций. Но это не следует из предложения на английском. К тому же акцент должен быть не на методах класса, а на свободных функциях. До сих пор, в качестве оболочек (оберток) свободных функций Вы использовали методы Ruby- класса. |
Лично мне все эти обертки (буквальный перевод с английского) режут слух. Класс - оболочка обертка класса/функции = создание оболочки для класса/функции |
К тому же акцент должен быть не на методах класса, а на свободных функциях. вот именно! До сих пор, в качестве оболочек (оберток) свободных функций Вы использовали методы Ruby- класса. stream15, а вы хорошо понимаете, что там предлагается сделать, из чего и зачем? |
Благодарю и прошу прощения. Мой вариант - НЕПРАВИЛЬНЫЙ! Ваш вариант перевода все - таки звучит не совсем корректно, хотя нельзя сказать что это такая же серьезная ошибка как моя. Дело в том, что *обертка свободной функции* в данном случае это и есть метод Ruby - класса, который специально создается чтобы служить оболочкой для свободной функции. Получается, что в качестве метода класса используется метод этого же класса ... Строго говоря, ничего нельзя использовать в качестве методов класса кроме самих методов этого класса. Я не могу придумать контекст, в котором употребление фразы "в качестве методов класса" было бы корректным. Вариант автора этой темы: До сих пор вы обертывали в качестве методов классов Ruby свободные функции (т. е. методы, не принадлежащие ни к какому классу) обертывали в качестве методов - тоже звучит не до конца корректно. Правильно - обертывали методами Ruby- класса. Итак: До сих пор Вы обертывали методами Ruby-класса (только) свободные функции. Но на мой взгляд лучше: До сих пор вы использовали методы Ruby-класса в качестве оболочек (только) для свободных функций. |
Дело в том, что *обертка свободной функции* в данном случае это и есть метод Ruby - класса, который специально создается чтобы служить оболочкой для свободной функции. не согласен насколько я понимаю: |
Не совсем понятно с чем именно Вы несогласны. (*** пока что вы в качестве методов для Ruby-класса использовали обертки free функций) Что у Вас *обертки свободных функций* это методы Ruby-класса? Или вторая часть? (... который специально создается чтобы служить оболочкой для свободной функции. ) -- насколько я понимаю: Это правильно, но Вы же не можете создать Ruby-класс сразу целиком. Вначале Вы его просто объявляете, в минимально необходимой конфигурации. А потом начинаете думать, какие свободные С - функции Вам понадобятся. Найдя очередную "полезную" функцию Вы СПЕЦИАЛЬНО для нее создаете метод-оболочку. То есть, если Вы нашли одну функцию, то будет один метод - оболочка, если 100, то 100 методов-оболочек. Именно в этом смысле ... который (метод - оболочка) СПЕЦИАЛЬНО создается чтобы служить оболочкой для свободной функции. То есть, в ходе создания класса Вы СПЕЦИАЛЬНО для каждой конкретной свободной функции создаете метод - оболочку Разумеется это не конечная цель. Целью данной конкретной операции является "встраивание* свободной функции в Ruby- класс. |
You need to be logged in to post in the forum |