我有一個函數返回主機名的函數sys_info::hostname
。唯一的問題是,hostname returnsResult<String, Error>
,但我需要另一個函數,必須有返回類型Result<(), String>
。我怎樣才能撥打sys_info::hostname
並在不返回相同類型的函數中返回主機名?在提出問題之前,由於格式問題,第二個函數的返回類型無法更改。更改返回結果的函數的返回類型
回答
而不是使用try!
宏,如果結果類型不兼容,則不能使用宏,請使用match
語句拆分返回值sys_info::hostname
,並根據其部分執行所需操作。 Example
struct Error;
fn thing_returning_result(succeed: bool) -> Result<String, Error> {
if succeed {
Ok("Hello".into())
} else {
Err(Error)
}
}
fn thing_returning_other_result(succeed: bool) -> Result<(), String> {
match thing_returning_result(succeed) {
Ok(s) => Err(s),
Err(_) => Err("whoopsies".into())
}
}
fn main() {
println!("{:?}", thing_returning_other_result(false));
}
我對這個問題表示歉意;但我該如何使用http://docs.fillzpp.org/sys-info-rs/sys_info/fn.hostname.html? –
你能更具體地說明你嘗試過的方法嗎?我現在想不出比「你稱之爲功能」更有用的答案。 –
[here](http://pastebin.com/H2ngtRJF)是我到目前爲止的代碼@Will Fischer –
- 1. 推導其參數的返回類型函數返回類型
- 2. openerp回顯函數的返回結果
- 3. 返回函數的函數的返回類型
- 4. 從函數返回結果
- 5. 函數不返回結果
- 6. 冪函數返回1更少結果
- 7. get_terms函數返回所有子類未返回所有結果
- 8. 返回類型的回調函數
- 9. 返回匿名類型的結果?
- 10. 返回String類型的結果(Java)
- 11. 更改函數返回值
- 12. 超類型的hibernate查詢返回子類型的結果,如何僅返回超類型的結果?
- 13. 函數返回類型decission
- 14. Infere函數返回類型
- 15. typedefing函數返回類型
- 16. 讓函數返回類型
- 17. 爲什麼此函數返回的結果比返回的結果要多?
- 18. 返回使用函數列表的結果返回()
- 19. 返回返回數據結構的錯誤,返回數組類型char *
- 20. 如何更改AsynTask的返回類型?
- 21. 函數返回一個包含返回類的函數的類
- 22. mysql函數的返回結果
- 23. 從函數返回結果 - JavaScript的
- 24. 函數返回不同的結果
- 25. 返回$ .getJSON函數的結果
- 26. 奇怪的函數返回結果
- 27. 函數作爲參數(無返回結果類型)
- 28. 函數的返回類型返回鏈接的承諾
- 29. 動態更改函數的返回類型
- 30. 函數的返回類型的需要
你的問題並沒有真正提供足夠的信息來回答它的有效途徑。你預期會發生什麼?Ok(String)'或'Err(Error)'?你如何在兩種表示之間進行轉換? – Shepmaster
對不起,[這裏[[http://pastebin.com/H2ngtRJF]是我正在使用的代碼,希望能清除我的問題是什麼? –
您應該[編輯]您的問題以包含問題的[MCVE](/ help/mcve)。 – Shepmaster