如何處理golang返回值較多問題

2022-10-09 15:24:11 字數 817 閱讀 6963

多值返回

go乙個非常特別的特性(對於編譯語言而言)是函式和方法可以返回多個值(python和perl同樣也可以)。

這可以用於改進一大堆在c程式中糟糕的慣例用法:修改引數的方式,返回乙個錯誤(例如遇到eof則返回-1)。在go中,write返回乙個計數值和乙個錯誤:「是的,你寫入了一些位元組,但是由於裝置異常,並不是全部都寫入了」。

os包中的*file.write是這樣宣告的:

func (file *file) write(b byte) (n int, err error)如同文件所述,它返回寫入的位元組數,並且當n != len(b)時,返回非nil的error。這是go中常見的方式。元組沒有作為原生型別出現,所以多返回值可能是最佳的選擇。你可以精確的返回希望的值,而無須過載域空間到特定的錯誤訊號上。

命名返回值

go函式的返回值或者結果引數可以指定乙個名字,並且像原始的變數那樣使用,就像輸入引數那樣。如果對其命名,在函式開始時,它們會用其型別的零值初始化。如果函式在不加引數的情況下執行了return語句,結果引數會返回。用這個特性,允許(再一次的)用較少的**做更多的事。

名字不是強制的,但是它們可以使得**更加健壯和清晰:這是文件。例如命名int型別的nextpos返回值,就能說明哪個代表哪個

func nextint(b byte, pos int) (value, nextpos int) 由於命名結果會被初始化並關聯於無修飾的return,它們可以非常簡單並且清晰。這裡有一段io.readfull的**,很好的運用了它:

func readfull(r reader, buf byte) (n int, err error)

return

Flex TitleWindow返回值處理

flex有2 中彈出視窗 alert.show 和通過 popupmanager 產生出來的彈出視窗,其中 alert 我們可以稱之為彈出對話方塊主要用於資訊提示,而用 popupmanager 產生出來的彈出視窗才是本文需要討論的議題。1 彈出視窗如何彈出 移除 利用 popupmanager 可...

Flex TitleWindow返回值處理

flex 有2中彈出視窗 alert.show 和通過 popupmanager產生出來的彈出視窗,其中alert我們可以稱之為彈出對話方塊主要用於資訊提示,而用popupmanager產生出來的彈出視窗才是本文需要討論的議題。1 彈出視窗如何彈出 移除 利用popupmanager,可用popup...

如何實現處理執行緒的返回值

方法一 myrunnable類 子執行緒,預設value為null,等待3s之後改變其值 public class myrunnable implements runnable catch interruptedexception e value libai public string getval...