4

Я работаю с несколькими файлами, и у меня есть проблема с одним изменяемым полем. В file1.ml, я заявил:Переменные поля записей с несколькими файлами

type mytype = { 
    mutable numbers : int list; 
} 

Так, в file2.ml, у меня есть элементы типа MyType. Но, когда я пытаюсь сделать:

myElement.numbers 

Ошибка: Неверные номера метки поля.

Спасибо, любая помощь приветствуется.

+0

Один способ думать о нем, что то, что вы определяете не записывать, но запись селекторы. Поэтому, когда вы используете селектор, вы должны указать его полный путь. – lebowski

ответ

5

Используйте полное имя из file2: myElement.File1.numbers

или добавить open File в файл.

или использовать локальный модуль открывает let open File2 in myElement.numbers

+0

Работал с первым вариантом! Но я забыл объяснить, что у моего File1.ml есть один модуль, а myType вставлен в «myModule». Как я могу исправить это с помощью «открытого файла»? msgstr "открыть myModule"? –

+2

Вы должны иметь возможность использовать 'open File1.myModule'. Стилистически хорошо работать, чтобы иметь всего лишь несколько глобальных применений 'open' в вашем коде. В противном случае вам придется слишком много работать, чтобы ваши пространства имен не имели противоречивых имен. Если вы только начинаете с OCaml, вы можете об этом беспокоиться позже. –

+2

Обратите внимание, что эта «проблема» должна исчезнуть с будущими версиями OCaml (в прошлый раз, когда я попробовал, в дереве разработки уже был рабочий код). – didierc

 Смежные вопросы

  • Нет связанных вопросов^_^