從函式中返回TstringList物件 摘

2022-03-31 10:34:52 字數 725 閱讀 8756

from:

如果乙個函式返回的物件不是我們經常使用的integer,string..而是tstringlist、tbutton等object那怎麼辦呢?

為什麼會有這個問題,因為函式的result是乙個object,按照object pascal要求,是需要其owner釋放(free)。

舉例:function

getstringlist: tstringlist;

begin

result :

=tstringlist.create;

result.add(

'an item

') ;

end;

以上面的函式中,是沒有釋放result的。那會不會造成「leak memory」呢?

文中的作者提醒,只要呼叫後,進行釋放就可以了。

varsl : tstringlist;

begin

sl :

=getstringlist;

//sl指向getstringlist的記憶體,因此後面釋放sl,相當釋放了getstringlist函式內部申請的記憶體。

tryshowmessage(sl[

0]) ;

//or

something like

;finally

sl.free;

end;

end;

結果就是:要使用乙個變數進行「參照」,通過變數進行釋放

python 從函式中返回函式

其實並不需要在乙個函式裡去執行另乙個函式,我們也可以將其作為輸出返回出來 def hi name yasoob def greet return now you are in the greet function def welcome return now you are in the welco...

從函式中返回值

1.從函式中返回值 如果你的函式要返回乙個結果,那麼你就需要用return把那個結果交給呼叫它的地方 例一 素數求和 int isprime int i idprime有乙個返回的型別,是int型別,這個isprime會返回乙個int的結果 所以要安排乙個return語句,讓它去返回乙個int re...

從函式中返回多個值的方法

原文 第一種方法是利用全域性變數,因此根本不用返回,只要直接給全域性變數賦值即可。例 dim intnumber 1 intnumber 1 40 dim intnumber 2 intnumber 2 80 public sub passvalues intnumber 1 intnumber 1...