[英]How to implement functions with default parameters
在Java中,我在網上搜索了如何使用默認參數創建函數,我了解到我需要用更少的參數再次編寫函數。
例:
f (a, b) {..}
f (a) {..}
f () {..}
現在,有兩種方法可以對這些函數進行編碼:
復制並粘貼3種方法中的算法,然后對其進行修改,將參數替換為所需的常量值:
f (a, b) { //algorithm with a and b } f (a) { //algorithm with a and a constant } f () { //algorithm with 2 constants }
優勢:運行速度優化
缺點:當我需要對函數進行修改時,我將不得不更改編寫代碼的次數(這里是3次3次)。
通過在參數中提供常量來返回前一個函數:
f (a, b) { //algorithm } f (a) { return f (a, 1); } f () { return f ("x"); }
優點:易於閱讀,並且代碼靈活。
缺點:當一個函數調用另一個函數時,它需要更多的運行時間和更多的內存(也許我在這一點上錯了,我真的很想成為)。
哪種方法更好?
當然,您應該選擇第二種方式。 確實應該避免重復代碼。 它使您的代碼難以維護,並且是引入錯誤的最佳方法。 您在這里所做的是過早的微優化:
過早的優化是萬惡之源,您的問題是另一個完美的例子。
在出現性能問題之前,您甚至都不應該考慮優化代碼,並且您已經證明問題出在該代碼上。 通常,性能問題來自IO(文件讀取,數據庫查詢等),或者來自大型數據集的錯誤算法(O(n2)而不是O(n))。 不是來自1或2個方法調用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.