如何处理具有多个字段的 return 类型

How to handle return types with multiple fields

我正在 GText.buffer 上调用方法 "get_text",详情请见此处 http://oandrieu.nerim.net/ocaml/lablgtk/doc/GText.buffer.html

let text = textView#buffer#get_text in

然而,作为 get_text returns 多个值,当我尝试将变量 "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

如何访问该方法返回的字符串?一般而言,如何将一个方法返回的多个值分开,以便我可以单独访问和使用它们?

我刚刚查找了您的 link 到 lablgtk - 看起来您缺少 ():

let text = textView#buffer#get_text () in ...

这种错误的问题在于您正在使用需要字符串的(柯里化)函数,关于类型错误的消息听起来有点 "long winded" 而不是重点。