Как обрабатывать возвращаемые типы с несколькими полями
Я вызываю метод "get_text" в GText.buffer, подробно описанный здесь http://oandrieu.nerim.net/ocaml/lablgtk/doc/GText.buffer.html
let text = textView#buffer#get_text in
Однако, поскольку get_text возвращает несколько значений, когда я пытаюсь использовать мою переменную "text" в качестве строки, например
textView2#buffer#set_text text;
Я получаю следующее сообщение об ошибке:
Error: This expression has type
?start:GText.iter ->
?stop:GText.iter -> ?slice:bool -> ?visible:bool -> unit -> string
but an expression was expected of type string
Как я могу получить доступ к строке, возвращаемой методом? В общем, как я могу отделить несколько значений, возвращаемых методом, чтобы я мог обращаться к ним и использовать их по отдельности?
1 ответ
Решение
Я только что посмотрел вашу ссылку на lablgtk - похоже, вам не хватает ():
let text = textView#buffer#get_text () in ...
Проблема с этим типом ошибки заключается в том, что вы используете (карри) функцию, где требуется строка, а сообщение об ошибке типа звучит как "долго сматывается", а не точно.