2017-02-05 49 views

回答

0

變量函數是帶有可變數量參數的函數。 例如c中的printf,或者你可以在很多語言中定義你自己的這樣的函數。在java ...被用來定義函數的變量參數。同樣在c中也使用了同樣的東西。

void simple_printf(const char* fmt...){ 
va_list args; 
va_start(args, fmt); 

while (*fmt != '\0') { 
    if (*fmt == 'd') { 
     int i = va_arg(args, int); 
     std::cout << i << '\n'; 
    } else if (*fmt == 'c') { 
     // note automatic conversion to integral type 
     int c = va_arg(args, int); 
     std::cout << static_cast<char>(c) << '\n'; 
    } else if (*fmt == 'f') { 
     double d = va_arg(args, double); 
     std::cout << d << '\n'; 
    } 
    ++fmt; 
} 

va_end(args); 

}

這是在C可變參數函數。

在你問到的鏈接是說,在新的更新之前調用ESLint這樣的函數必須使用.apply(),但從新的更新,你可以簡單地忽略它,只需在傳遞的參數之前加上...,鏈接。

前:

var args = [1, 2, 3, 4]; Math.max.apply(Math, args);

現在

var args = [1, 2, 3, 4]; Math.max(...args);

現在ü不要需要。適用使用()

相關問題