2016-04-09 52 views
1

我呼籲GText.buffer的方法「get_text」這裏詳述http://oandrieu.nerim.net/ocaml/lablgtk/doc/GText.buffer.html如何處理的返回類型具有多個字段

let text = textView#buffer#get_text in 

然而,隨着get_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 

如何訪問該方法返回的字符串?一般來說,如何分離一個方法返回的多個值,以便我可以單獨訪問和使用它們?

回答

2

我只是看着你的鏈接lablgtk - 它看起來像你缺少的():

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

用這種錯誤的問題是,您使用的是(咖喱)函數,其中字符串是必需的,而關於類型錯誤的消息聽起來有點「長囉嗦」,而不是重點。

+0

但它確切地說明了這一點。該值不是一個字符串,而是一個採用大量可選參數的函數,後跟()返回一個字符串。這不是ocamls的錯誤,函數有很多可選的參數,是嗎? –

+0

@GoswinvonBrederlow我認爲這一點將是「如果你把(),那麼它會做你想做的」;-)聽起來像一個功能請求:-) –

相關問題