[ocaml] модули и вложенные классы
От: _rasta  
Дата: 17.06.08 06:32
Оценка:
день добрый.

такая шутка работает:
module Test =
struct

  let str = "test";;

  class t = object (self)

        method print s = print_endline (s ^ str);

  end;;

end;;

let _ =
  (new Test.t)#print "! ";;


а вот такая уже нет:
module Test =
struct

  let str = "test";;

  class t = object (self)
        
        method print s = print_endline (s ^ str);

        method set s = str <- s;
        
  end;;

end;;


ocamlc ./test.ml
File "./test.ml", line 10, characters 16-25:
Unbound instance variable str

вопрос: как-то устанавливать значения переменных в модуле из класса?

для чего это надо: хочу для двух классов, находящихся в одном модуле,
сделать «глобальную» переменную.

--
-- via knode --
Posted via RSDN NNTP Server 2.1 beta
Re: [ocaml] модули и вложенные классы
От: GonzoVas Россия  
Дата: 17.06.08 06:57
Оценка:
Здравствуйте, _rasta, Вы писали:

Возможно, вы имели в виду что-то такое?
module Test =
struct
  let str = ref "test";;

  class t = object (self)
    method print s = print_endline (s ^ !str);
    method set s = str := s;
  end;;
end;;
Re[2]: [ocaml] модули и вложенные классы
От: _rasta  
Дата: 17.06.08 07:15
Оценка:
GonzoVas wrote:

> Возможно, вы имели в виду что-то такое?


да да да, я это уже сам написал

thanx.

--
-- via knode --
Posted via RSDN NNTP Server 2.1 beta
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.