小编use*_*434的帖子

如何传递和使用任意lambda函数作为参数

我对Lisp中的lambda函数有很好的理解.Java似乎没有Lisp那样的灵活性.我如何在Java中考虑lambdas?鉴于下面的代码,我该怎么做?

public class Draw {
    GraphicsContext gc;

    static void draw(double x, double y, double w, double h, boolean drawRect) {
        if (drawRect) {
            gc.fillRect(x, y, w, h);
        } else {
            gc.strokeRect(x, y, w, h);
        }
    }

    // How do I do that?
    static void drawWithLambda(double x, double y, double w, double h /**, lambda */) {
        lambda(x, y, w, h);
    }

    public static void main(String[] args) {
        draw(0, 0, 50, 50, false); // OK
        drawWithLambda(0, 0, 50, 50, GraphicsContext::fillRect); // …
Run Code Online (Sandbox Code Playgroud)

java lambda java-8

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

为什么我在 verilog 中收到“分配时类型不兼容”错误?

我有以下 Verilog 代码,为什么我会收到“分配时不兼容的类型”-分配“pwmData = 4'b1000;”的错误?我在 Active-HDL 9.2 中遇到错误。

module PwmTestbench;

parameter dataWidth = 4;

reg clock, reset, pwmData[3:0], loadPwmData;
wire pwmOut;

Pwm #(.dataWidth(dataWidth)) pwm (
.clk(clock),
.reset(reset),
.data(pwmData),
.load(loadPwmData),
.out(pwmOut)
);

initial begin
    clock = 1'b1;
    reset = 1'b1;
    loadPwmData = 1'b0;
end

always begin
    #1 clock = !clock;
end

initial begin
    #1   pwmData = 4'b1000;     // # Error: VCP2852 pwm_tb.v : (29, 1): Incompatible types at assignment: .pwmData<reg[3:0]> <- 4'b1000<[3:0]bit>.
    #1   loadPwmData = 1'b1;
    #2   loadPwmData = 1'b0;
    #1 …
Run Code Online (Sandbox Code Playgroud)

verilog

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

标签 统计

java ×1

java-8 ×1

lambda ×1

verilog ×1