标签: function-parameter

成功和失败函数参数Scala模式

Scala中是否有成功和失败关闭的替代模式?

这个约定与node.js库通常做的类似,但是我只是想知道在Scala中是否有另一种方法可以做到这一点.

例如:

def performAsyncAction(n: BigInt,
                success: (BigInt) => Unit,
                failure: FunctionTypes.Failure): Unit = {
Run Code Online (Sandbox Code Playgroud)

然后调用该函数

performAsyncAction(10,
         {(x: BigInt) => 
              /* Code... */
         }, 
         {(t: Throwable) => 
              e.printStackTrace()
         })
Run Code Online (Sandbox Code Playgroud)

谢谢

closures scala anonymous-function function-parameter

2
推荐指数
1
解决办法
209
查看次数

将列表作为位置参数传递给F#中的Python函数

在Python中,您可以这样写:

def add(a, b, c):
    return a + b + c

list_of_args = [4, 5, 6]
print(add(*list_of_args))
Run Code Online (Sandbox Code Playgroud)

前面的星号list_of_args展开了iterable,使其元素是参数a,b和c的值.

你能在F#做类似的事吗?具体来说,我正在寻找一个好的或惯用的F#解决方案,并且不想用反射等来解决问题.

f# iterable function-parameter

2
推荐指数
1
解决办法
2906
查看次数

"复合文字"作为论证

sum(int [], arr_size)在语句中调用函数

total = sum((int []){1,2,3,4,5}, 5);
Run Code Online (Sandbox Code Playgroud)

一个 复合文字 (int []){1,2,3,4,5}作为参数传递.很明显,数组的长度由文字中的元素数量决定(当然5这里).那么5作为另一个论点传递的需要是什么?

我们不能将上述功能定义为

sum(int []) {....}
Run Code Online (Sandbox Code Playgroud)

然后将其称为

total = sum((int []){1,2,3,4,5})
Run Code Online (Sandbox Code Playgroud)

c compound-literals function-parameter

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

如何在Perl中验证函数参数?

你能告诉我Perl中哪些是验证功能参数最聪明的方法吗?

代码片段:

sub testfunction {
    my ($args) = @_;
    my $value = $args->{value} || die "no value set";
    # process value ...
}


testfunction({value => 'Hallo'});

testfunction({novalue => 'Hallo'});
Run Code Online (Sandbox Code Playgroud)

以上方式是在perl中验证函数参数的一个很好的替代方法还是有更聪明的方法?非常感谢大家.

validation perl function function-parameter

2
推荐指数
1
解决办法
598
查看次数

为什么我们不能直接从堆栈帧移1个字节到寄存器?

我正在阅读《计算机系统:程序员的观点》,3 / E(CS:APP3e)Randal E. Bryant和David R. O'Hallaron,作者说:“观察到第6行的movl指令从内存中读取了4个字节;以下addb指令仅使用低位字节”

第6行,为什么使用movl?他们为什么不移动8(%rsp),%dl?

void proc(a1, a1p, a2, a2p, a3, a3p, a4, a4p)
Arguments passed as follows:
  a1 in %rdi (64 bits)
  a1p in %rsi (64 bits)
  a2 in %edx (32 bits)
  a2p in %rcx (64 bits)
  a3 in %r8w (16 bits)
  a3p in %r9 (64 bits)
  a4 at %rsp+8 ( 8 bits)
  a4p at %rsp+16 (64 bits)
1   proc:
2   movq    16(%rsp), %rax  Fetch a4p (64 bits)
3   addq    %rdi, (%rsi)    *a1p += a1 (64 …
Run Code Online (Sandbox Code Playgroud)

assembly gcc x86-64 calling-convention function-parameter

2
推荐指数
1
解决办法
64
查看次数

如何将typename作为函数中的参数?(C++)

我需要能够将typename作为参数传递:

int X = FileRead(file, 9, char);
Run Code Online (Sandbox Code Playgroud)

这个概念是为FileRead(std :: fstream,int pos,???)读取pos*sizeof(无论类型是什么)来获得所需的位置.我试过模板:

template<typename T>
T FileRead(std::fstream file, int pos, T type)
{
    T data;
    file.read(reinterpret_cast<char*>(&data), sizeof(data));
    return data;
}
Run Code Online (Sandbox Code Playgroud)

但这需要我创建一个每次我想使用FileRead时使用的类型的变量,我真的不想因为一个函数而重新设计整个程序,所以无论如何都要使用typename作为参数?

c++ file-io function-parameter typename

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

如何在C++中将指向变量的指针声明为函数的参数?

我有一个函数,需要一个const D3DVECTOR3 *pos,但我没有理由事先声明这个.对我来说最合乎逻辑的解决方案是使用new:

Function(
    //other parameters,
    new D3DXVECTOR3(x, y, 0));
Run Code Online (Sandbox Code Playgroud)

但是我不知道我会怎么做deleting,在函数中初始化.我的下一个想法是使用&运算符,如下所示:

Function(
    //other parameters,
    &D3DVECTOR3(x, y, 0));
Run Code Online (Sandbox Code Playgroud)

但我不知道这是否是一种有效的方法.(它没有出错,但是有很多东西不能给出非常好的错误).我应该使用new,&还是其他一些我忽略的技术?

c++ pointers declaration new-operator function-parameter

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


C#中的VB"可选"等价物

C#中有可选项吗?

Sub notify(ByVal company As String, Optional ByVal office As String = "QJZ")
Run Code Online (Sandbox Code Playgroud)

你将如何在C#中实现上述代码?我见过optionalstr optionalint但其他数据类型和自定义对象呢?

.net c# vb.net function-parameter

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

如何指定可以是整数或字符串的类型

我有一个函数,它的参数应该是integerstring

from typing import int,str

def MyFunc(arg:int) -> None:
    print(arg)
Run Code Online (Sandbox Code Playgroud)

但我想知道如何编写它来告诉用户 arg 可以是 int 和 str 吗?

python typing function-parameter

1
推荐指数
2
解决办法
1491
查看次数