标签: function-parameter

C函数参数列表中```参数的含义是什么?

可能重复:
C/C++:传递可变数量的参数

根据功能申报方式

return-type function-name(parameter-list, ...) {body ...}

以下代码是一种重载吗?

(在A_FILE.h中)

typedef VOID *FUNCTION(UINTN Number, ...);

似乎我可以将一个Number参数或更多参数传递给FUNCTION函数,参数的数量是否取决于函数的实现?

c function-parameter

5
推荐指数
1
解决办法
349
查看次数

如何将空变量传递给Lua中的函数

我试图将空值传递给函数但失败了.这是我的设置;

function gameBonus.new( x, y, kind, howFast )   -- constructor
    local newgameBonus = {
        x = x or 0,
        y = y or 0,
        kind = kind or "no kind",
        howFast = howFast or "no speed"
    }
    return setmetatable( newgameBonus, gameBonus_mt )
end
Run Code Online (Sandbox Code Playgroud)

我只希望传递"kind"并希望构造函数处理剩下的事情.喜欢;

 local dog3 = dog.new("" ,"" , "bonus","" )
Run Code Online (Sandbox Code Playgroud)

或者我只想传递"howFast";

 local dog3 = dog.new( , , , "faster")
Run Code Online (Sandbox Code Playgroud)

无论有""没有尝试,给出错误:

'附近的意外符号'

variables lua function-parameter

5
推荐指数
1
解决办法
1404
查看次数

Swift函数参数

我有一个像下面这样的单身APIService

import Foundation
import Alamofire
import SwiftyJSON

typealias Success = JSON -> Void
typealias Failure = NSError? -> Void

class APIService {

    private let BaseURL = "http://api.openweathermap.org/data/2.5"

    class var instance: APIService {
        struct Singleton {
            static let instance: APIService = APIService()
        }
        return Singleton.instance
    }

    func currentWeather(cityName: String, success:Success?, failure:Failure?) {
        let url = BaseURL + "/weather"
        Alamofire.request(.GET, url, parameters:["q" : cityName])
            .responseJSON { (_, _, jsonObject, error) in
                if error != nil && failure != nil {
                    failure!(error)
                } …
Run Code Online (Sandbox Code Playgroud)

function-parameter swift

5
推荐指数
1
解决办法
1160
查看次数

解决带有嵌套模板变量的Visual Studio内部编译器错误

我正在尝试编写可使我索引到函数的参数类型的代码:

template <typename R, typename... ARGS>
R function_return(R(*)(ARGS...));

template <typename R, typename... ARGS>
std::tuple<ARGS...> function_parameters(R(*)(ARGS...));

template <int I, typename T>
using get_type = typename std::conditional_t<(I < 0), std::tuple_element<static_cast<int>(std::tuple_size_v<T>) + I, T>, std::tuple_element<I, T>>::type;

template <int I, typename T>
using parameter_type = get_type<I, decltype(function_parameters(std::declval<T>()))>;
Run Code Online (Sandbox Code Playgroud)

Live Example (ICE under VS) Live Example (working on GCC)

但是当我尝试在上使用它时,出现内部编译器错误:

严重错误C1001:编译器中发生内部错误。

我还有另一种方法可以解决内部编译器错误吗?

c++ function-parameter internal-compiler-error template-variables visual-studio-2017

5
推荐指数
1
解决办法
110
查看次数

将函数的参数声明为final:为什么以及何时需要它?

通过android的教程(与多线程,loopers和处理程序相关),我遇到了这个:

public synchronized void enqueueDownload(final DownloadTask task)
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 何时以及为什么需要将函数的参数声明为final?
  2. 它是特定于Java还是在其他语言(如C/C++)中存在类似的东西?

java android final function-parameter

4
推荐指数
1
解决办法
1115
查看次数

C是否支持可选的null参数?

在Python中,我习惯了类似的东西

def send_command(command, modifier = None):
Run Code Online (Sandbox Code Playgroud)

然后modifier参数是可选的,并且参数的缺失可以与参数0区分开来.在C中是否有类似的功能?我没有C和Googling的经验,但是找不到如何在C中使用可选参数的明确声明.看起来你可以类似地分配它们,如下所示:

void send_command(uint8_t command, uint8_t modifier = 0) {
Run Code Online (Sandbox Code Playgroud)

所以第二个参数是可选的,如果不使用则默认为0? (编辑:不,无论如何这是无效的C)

但功能可以区分send_command(SOMETHING)send_command(SOMETHING, 0)?理想情况下,第二个参数可以是任何uint8值,包括0.

也许NULL与0不同?

void send_command(uint8_t command, uint8_t modifier = NULL) {
Run Code Online (Sandbox Code Playgroud)

c null optional-parameters function-parameter function-declaration

4
推荐指数
2
解决办法
2万
查看次数

Scala - 类型为T或=> T的参数

以下是否有任何区别

def foo(s: String) = { ... }
Run Code Online (Sandbox Code Playgroud)

def foo(s: => String) { ... }
Run Code Online (Sandbox Code Playgroud)

这两个定义都接受"sss"作为参数.

scala function-parameter

4
推荐指数
1
解决办法
1029
查看次数

Swift:使用成员常量作为函数参数的默认值

我有一个快速的类,我试图在其中传递函数参数的默认值:

class SuperDuperCoolClass : UIViewController {
   // declared a constant
   let primaryColor : UIColor = UIColor(red: 72.0/255.0, green: 86.0/255.0, blue: 114.0/255.0, alpha: 1.0)

   // compilation error at below line: SuperDuperCoolClass.Type does not have a member named 'primaryColor'
   func configureCheckmarkedBullet(bullet: UIButton, color: UIColor = primaryColor){
       // some cool stuff with bullet and primaryColor
   }
}
Run Code Online (Sandbox Code Playgroud)

如上所述,如果我尝试使用常数作为函数参数的默认值,则编译器会抱怨以下错误:

SuperDuperCoolClass.Type does not have a member named 'primaryColor'
Run Code Online (Sandbox Code Playgroud)

但是如果我这样直接分配RHS值,它不会抱怨:-/:

func configureCheckmarkedBullet(bullet: UIButton, color: UIColor = UIColor(red: 72.0/255.0, green: 86.0/255.0, blue: 114.0/255.0, alpha: 1.0)) {
        // …
Run Code Online (Sandbox Code Playgroud)

function-parameter swift

4
推荐指数
1
解决办法
735
查看次数

在C ++中将函数作为参数传递

我对C ++有点生疏,经过一年的python转换。自然,我想将python的懒惰翻译成C ++。

我刚刚发现rot13,我对此感到非常兴奋。我找到了3种方法,并且我想做一点性能测试。我还想看看在适当位置修改字符串或创建新字符串是否有区别。所以我最终有6个功能。

在第一种方法中,我使用std :: map映射字符,因此,我建立了一个初始化映射的类,在第二种方法中,我使用了三元运算符,第三种方法是使用了位移。

现在函数原型看起来像这样

// map dependent
void Rot13::convert_inplace(string& mystr){

string Rot13::convert(const string& mystr){

// ternary operator
void bitrot_inplace(string& mystr){

string bitrot(const string&  mystr){

// bit shift
void bitshiftrot_inplace(string& mystr){

string bitshiftrot(const string& mystr){
Run Code Online (Sandbox Code Playgroud)

我想构造一个接受这些函数作为参数的函数,然后计算时间并打印结果

所以,我看了一下计算器,12,我想出了这个

typedef void (*vfc)(string str);

void printtime_inplace(string title, vfc func){
Run Code Online (Sandbox Code Playgroud)

我尝试了这种构造,但这意味着我受到vfc返回类型(在我的情况下为voidor)的限制string,并且受制于我需要传递类的指针的事实。因此,我将必须做3个函数来容纳不同的函数,即用于类成员函数的函数,用于void返回类型的函数和用于字符串返回类型的函数。

所以我问自己,是否真的需要使用模板而不编写相同功能的3倍?我对模板真的没有信心,但是我应该做3 typedefs并构造printtime函数以接受模板吗?此外,有没有办法告诉模板您将只接受这些类型(即我定义的类型)?

另一个问题,这可以说是一个好的设计吗?还是您会建议其他设计?其他实现?

c++ function-parameter

4
推荐指数
2
解决办法
6719
查看次数

如何通过方法使用numba.jit

numba.jit在python中使用。

我可以将普通函数转换为jit类型并运行:

from numba import jit

def sum(a, b):
    return a+b

func = jit(sum)
print(func(1, 2))
Run Code Online (Sandbox Code Playgroud)

如何做到这一点的方法?这样的事情(这不起作用,我知道为什么)。

from numba import jit

class some_class:
    def __init__(self, something = 0):
        self.number = something
    def get_num(self):
        return self.number

my_object = some_class(5)
func = jit(my_object.get_num)
print(my_object.func())
Run Code Online (Sandbox Code Playgroud)

PS我也尝试过装饰器,它可以工作,但是我不能将其用于导入的类(我自己没有定义的类),所以我正在研究这个。

python jit class function-parameter numba

4
推荐指数
1
解决办法
1859
查看次数