[Ruby] self × Ruby É this × Java
V V
ekvador777 на yahoo.com
Чт Дек 4 13:44:39 MSK 2003
Обращаюсь к специалистам :) в Ruby (и Java тоже :)))
Есть у меня такой примерчик на Java
-------------------------------------------
public class ISOMsg extends ISOComponent
implements Cloneable, Loggeable, Externalizable
{
private WeakReference sourceRef;
/**
* Creates an ISOMsg
*/
public ISOMsg () {
fields = new Hashtable ();
maxField = -1;
dirty = true;
maxFieldDirty=true;
direction = 0;
header = null;
}
/**
* Creates a nested ISOMsg
*/
public ISOMsg (int fieldNumber) {
this();
setFieldNumber (fieldNumber);
}
------------------------------------------
С учетом того что Overload в Ruby отсутствует, мой
вариант на Ruby такой ...
------------------------------------------------
class Array
def classes
collect {|a| a.class}
end
end
class ISOMsg < ISOComponent
def initialize(*args)
case args.classes
when [Fixnum] # аналог public ISOMsg (int
fieldNumber)
fieldNumber = args[0]
self # Ruby вариант "this" в JAVA ????
setFieldNumber(fieldNumber)
else
if args.empty? # аналог public ISOMsg ()
@fields = {}
@maxField = -1
dirty, maxFieldDirty = true
direction = 0
header = nil
@installers = []
end
end
end
end
Вообщем, при вызове self повторный вызов initialize не
происходит. :( Я конечно могу пойти таким образом
...
self.foo
...
def foo
....
end
но хочется обойтись без этого.
Что можете посоветовать ?
С Уважением,
Владислав
__________________________________
Do you Yahoo!?
Free Pop-Up Blocker - Get it now
http://companion.yahoo.com/
Подробная информация о списке рассылки Ruby