Как обрабатывать возвращаемые типы с несколькими полями

Я вызываю метод "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 ...

Проблема с этим типом ошибки заключается в том, что вы используете (карри) функцию, где требуется строка, а сообщение об ошибке типа звучит как "долго сматывается", а не точно.

Другие вопросы по тегам