小编Oct*_*bin的帖子

TypeScript 相当于 Java 方法引用

我对 TypeScript 有点陌生,但我对 Java 很了解。每当需要满足函数接口时,最常见的是使用 lambda 表达式 ( ->) 或方法引用 ( ::) 来完成。

Lambda 表达式在两种语言之间似乎是等效的(如果我错了,请纠正我)。有没有办法利用方法引用?

当目标是实现这一点时:

  this.entryService.getEntries()
    .subscribe(entries => this.listUpdateService.send(entries));
Run Code Online (Sandbox Code Playgroud)

有没有办法使用函数引用?下面的做法似乎是错误的,因为send不在 的范围内执行this.listUpdateService。(顺便说一句,它在哪个范围内执行?)

  this.entryService.getEntries()
    .subscribe(this.listUpdateService.send);
Run Code Online (Sandbox Code Playgroud)

java lambda scope typescript method-reference

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

Splint:定义前使用的局部变量

我知道局部变量在未设置时可以具有"随机"值,但是用指针设置局部变量的第一个值是不是很糟糕?例如:

void setValue(int* p_val)
{
    *p_val = …; /* Assignment does not use *p_val */
}

int main(void)
{
    int val;
    setValue(&val);
    printf("%d", val);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

其中setValue仅设置并且从不读取引用变量的值.Splint警告我val是"在定义之前使用",我对这个警告有点惊讶,因为我相信在执行printf之前设置val的值并使用val.夹板是否不够先进,无法识别用于设置初始值的参考?

c pointers splint definition

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

是否有向流元素添加上下文的最佳实践?

我想向流的元素添加上下文。我知道我可以映射到一个包含要添加的元素和上下文的列表,但它似乎有点臃肿(计算/内存开销)并且不够灵活(类型丢失)。我知道我可以做这样的事情:

public record Tuple<A, B> (A a, B b) {}
Run Code Online (Sandbox Code Playgroud)

然后,例如:

stream // Stream<Foo>
    .map(foo -> new Tuple<>(foo, getContext(foo)); // Stream<Tuple<Foo, FooContext>>
Run Code Online (Sandbox Code Playgroud)

但是是否有一个最佳实践,或者甚至是一个开销很少的标准实现?

java java-stream

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