好的 Free 帶你上天堂 (咦?) 圖片來源 |
最近看到一篇關於葡萄牙人寫的文章:FreeAndNil... Esqueça
內文是說明在物件導向的時代,JAVA、C# 這類的語言都有垃圾自動回收機制,進化中的 Delphi 其實也有。
接著便開始說明了使用 FreeAndNil 讓我們的原始碼非常噁心的經過。
提出的解法是使用 Interface!
原先我們的寫法可能是:
好的 Free 帶你上天堂 (咦?) 圖片來源 |
泛型 (Generic) 是程式毒藥還是解藥? 圖片來源 |
1 2 3 4 5 6 7 8 9 | function OccurrencesOfChar( const S: string ; const C: char ): integer ; var i: Integer ; begin result := 0 ; for i := 1 to Length(S) do if S[i] = C then inc(result); end ; |
1 2 3 4 5 6 7 8 9 10 11 12 | function Occurrences( const Substring, Text: string ): integer ; var offset: integer ; begin result := 0 ; offset := PosEx(Substring, Text, 1 ); while offset <> 0 do begin inc(result); offset := PosEx(Substring, Text, offset + length(Substring)); end ; end ; |