2016-11-02 29 views
0

我有一個應用程序可以執行批處理,程序需要一步一步完成,所以我做了一個函數,但問題在於此。如何減少Swift中的參數3.0

每個過程至少需要一個參數。批處理函數總共需要11個參數。這很醜陋。

由於Swift 3.0引入了函數式編程,現在有更好的方法來做到這一點嗎? CodeExample:

的ViewController

@IBAction func StartButtonClicked(_ sender: NSButton) { 
    BatchProcess(
     param1:param1, 
     param2:param2, 
     param3:param3, 
     param4:param4, 
     para..........) 
} 

BatchProcess

func BatchProcess(param1:param1,param2:param2,param3:param3,.....){ 
    try process1(param1) 
    try process2(param2,param3) 
    try process3(param4) 
    try proce.......... 
} 
+1

我不知道這是否是您需要的,但如何使用'array of params'作爲單個參數。例如:'func BatchProcess(params:Array){' – GoGreen

回答

0

新增目的地類和調用類之間的新類。將該課程作爲網關用於目標課程。這個網關類具有隻有首選參數的成員函數。

在你打電話給原來的目的地日常用的參數一長串的成員函數,充滿此時,相應的參數

示例僞代碼格式:

func a(param1) { 
    BatchProcess(param1,nil,nil,nil,.....) 
} 

func b(param2, param3) { 
    BatchProcess(nil,param2,param3,nil,nil,nil,.....) 
} 

func c(param1, param3) { 
    BatchProcess(param1,nil,param3,nil,nil,nil,.....) 
} 

這也有個好處,你可以爲函數a/b/c創建良好的名稱,其中清楚地描述了參數