在oc中,當乙個功能豐富的類對外暴露介面時,在.**件中往往會提供一系列的api,引數由少到多。但是在.m檔案的實現中,往往都是利用乙個通用的實現。例如:
宣告
+ (int)addnuma:(int)numa
numb:(int)numb;
+ (int)addnuma:(int)numa
numb:(int)numb
numc:(int)numc;
+ (int)addnuma:(int)numa
numb:(int)numb
numc:(int)numc
numd:(int)numd;
實現
+ (int)addnuma:(int)numa
numb:(int)numb
+ (int)addnuma:(int)numa
numb:(int)numb
numc:(int)numc
+ (int)addnuma:(int)numa
numb:(int)numb
numc:(int)numc
numd:(int)numd
**量很龐大,在swift中有更簡單的方式來實現:
func add(numa:int,numb:int,numc:int = 0,numd:int = 0) -> int
self.add(numa: 10, numb: 20, numc: 12, numd: 90)
self.add(numa: 20, numb: 50)
只需要在方法宣告中按照上面的格式給出預設值就行。 引數個數可變的函式
今天突然想起引數個數可變的函式,然後想了下,覺得自己還真不太了解它,遂決定弄清楚。1.如何取得可變引數 比如 void f int fixpara1,char p char fixpara1 取得固定引數位址 cout int p 為什麼p 4可以取到第乙個可變引數呢?因為引數在函式被呼叫前,會逐個...
可變引數個數的函式
type vafunction type arg1,type arg2,引數可以分為兩部分 個數確定的固定引數和個數可變的可選引數。函式至少需要乙個固定引數,固定引數的宣告和普通函式一樣 可選引數由於個數不確定,宣告時用 表示。固定引數和可選引數公同構成乙個函式的引數列表。標準c c 包含標頭檔案s...
引數個數可變的巨集
出處 乙個介紹 macros很好的 在 gnu c 中,巨集可以接受可變數目的引數,就象函式一樣,例如 define pr debug fmt,arg.printk kern debug fmt,arg 用可變引數巨集 variadic macros 傳遞可變參數列 你可能很熟悉在函式中使用可變參數...