小编TeW*_*eWu的帖子

How do lambda calls interact with Interfaces?

The code snippet shown below works. However, I'm not sure why it works. I'm not quite following the logic of how the lambda function is passing information to the interface.

Where is control being passed? How is the compiler making sense of each n in the loop and each message created?

This code compiles and gives the expected results. I'm just not sure how.

import java.util.ArrayList;
import java.util.List;

public class TesterClass {

    public static void main(String[] args) {

        List<String> names …
Run Code Online (Sandbox Code Playgroud)

java lambda interface java-8

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

如何选择特定客户?

我创建了以下表:

create table customers (
        ID      varchar(9),
        name    varchar(15), 
        CONSTRAINT pk_id PRIMARY KEY (ID)
);

create table living_places (
        code    varchar(7),
        ID      varchar(9),
        CONSTRAINT pk_code PRIMARY KEY (code)
);

create table policies (
        code_policy         varchar(7),
        code_living_place   varchar(7),
        CONSTRAINT pk_code_policy PRIMARY KEY (code_policy)
);

create table bills (
        code          varchar(7),
        code_policy   varchar(7),
        paid_out      boolean,
        CONSTRAINT pk_code_bill PRIMARY KEY (code)
);
Run Code Online (Sandbox Code Playgroud)

我插入了以下日期:

insert into customers(ID, name) values('fx1','Louis');
insert into customers(ID, name) values('fx2','Peter');
insert into customers(ID, name) values('fx3','Alice');

insert into living_places(code, ID) values('001','fx1'); …
Run Code Online (Sandbox Code Playgroud)

mysql sql

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

如何通过 Apollo Client 在 NodeJS 中进行 GraphQL 订阅?

我想订阅 GraphQL 服务器。该应用程序在 NodeJS 脚本中运行(即不在网络浏览器中)。

这是我目前所做的:

const fetch = require("node-fetch").default;
const apollo = require("apollo-boost");
const ApolloClient = apollo.default;
const { gql } = require("apollo-server");

const apolloClient = new ApolloClient({
  uri: "http://localhost:4000/graphql",
  fetch
});

apolloClient.subscribe({
  query: gql`
    subscription {
      startTaskRequested {
        pkRobot
        taskName
      }
    }
  `,
}).subscribe({
  next(x) { console.log(x) },
  error(err) { console.log(`Finished with error: ${ err }`) },
  complete() { console.log('Finished') }
});
Run Code Online (Sandbox Code Playgroud)

结果输出是:

{ data: { startTaskRequested: null } }
Finished
Run Code Online (Sandbox Code Playgroud)

在 GraphQL Server 上,我可以看到相应的解析器从未被调用。

如果我使用 Apollo 的 …

node.js apollo graphql graphql-subscriptions apollo-client

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

有没有正确的方法来合并两个顺序不正确的提交?

我想将两个提交不按顺序合并到一个。

例如,如果我执行命令git rebase -i HEAD~3

pick 8h47n1f Update documentation and release-notes  #a
pick 8n32b7a Implemented some random function        #b
pick a73ncj1 Update documentation and release-notes  #c
Run Code Online (Sandbox Code Playgroud)

我想在推送之前将a和c行合并为一个提交。

我当前完成此任务的方法是按以下方式对提交进行重新排序:

pick 8h47n1f Update documentation and release-notes   #a
squash a73ncj1 Update documentation and release-notes #c
pick 8n32b7a Implemented some random function         #b
Run Code Online (Sandbox Code Playgroud)

到目前为止,我还没有看到任何危险的副作用。有谁知道我是否真的可以通过这样做破坏某些东西?有没有更好,更安全的方法来完成我要完成的工作?

git

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

我们如何自动只在较新的 Android 版本上运行测试?

我发现一项测试,尤其是在 KitKat 之前的设备上一直失败。我相信这与旧 Android 设备上使用的嵌入式 WebView 的变化有关(但也许这是错误的)。无论如何,回到我的问题:我想要一种优雅的方式来控制是否根据设备上运行的 Android 版本运行测试。

目前,如果运行时早于 KitKat,我会使用短路测试并通过测试的代码。这是相关的代码:

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
  assertTrue("Skipping this test as the Android version is too low.", true);
  return;
}
Run Code Online (Sandbox Code Playgroud)

因为我已经依次尝试使用两个注解:@TargetApi@RequiresApi

@Test
@RequiresApi(Build.VERSION_CODES.KITKAT)
public void zimTest() {
    Log.v("kiwixTesting", "Running zimTest() on Android version: " + Build.VERSION.SDK_INT);
    ...
}
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,测试都在我的测试设备(包括 Android 4.3、4.3、4.4 和更新版本)上运行。我可以判断,因为测试运行程序显示测试已成功运行,并且日志中Log.v("kiwixTesting", "Running zimTest() on Android version: " + Build.VERSION.SDK_INT);出现以下日志消息的输出 。

完整代码在这里,我在这里跟踪工作

有人可以建议比我更好的方法吗?谢谢你。

android android-testing android-espresso

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

Haskell - 如何将矩阵(二维数组)分组

我在下面有一个二维矩阵:

mat = [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]
Run Code Online (Sandbox Code Playgroud)

我想把它翻译成4组:

output = [[1,2,5,6],[3,4,7,8],[9,10,13,14],[11,12,15,16]]
Run Code Online (Sandbox Code Playgroud)

在 Java 或 Python 等其他(命令式)编程语言中,我可以轻松创建 4 个新列表,并从(i,j)每个子矩阵的左上角开始迭代以添加元素。但在 Haskell 中,我不知道如何实现我想要的因为它不支持 for 循环并且递归循环(x:xs)似乎对这种情况没有帮助。

在此处输入图片说明

haskell matrix

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

波兰符号评估功能

我是Scala的新手,我很难定义,或者更有可能将我的代码从Ruby转换为评估描述为波兰语符号的计算.fe(+ 3 2)或( - 4(+ 3 2))

我成功地将字符串解析为ArrayBuffer(+,3,2)或ArrayBuffer( - ,4,ArrayBuffer(+,3 2))的形式

当我尝试定义递归eval函数时,问题实际上就开始了,它只是将ArrayBuffer作为参数并"返回"一个int(评估应用程序的结果).

在基础案例中:我想简单地检查第二个元素是否是一个instanceOf [Int] &&第三个元素是instanceOf [Int]然后一起评估它们(取决于符号运算符 - 第一个元素)并返回int.

但是,如果任何元素是另一个ArrayBuffer,我只想将该元素重新分配给递归调用的eval函数的返回值.喜欢:存储(2)= eval(存储(2).(**这就是为什么我使用可变的ArrayBuffer**)

我得到的错误是:scala.collection.mutable.ArrayBuffer无法强制转换为java.lang.Integer

我当然不是在寻找任何复制和粘贴的答案,而是寻求一些建议和观察.建设性批评完全受到欢迎.

这是我仅用于添加*的测试代码

scala.collection.mutable.ArrayBuffer cannot be cast to java.lang.Integer
Run Code Online (Sandbox Code Playgroud)

scala

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

Javascript,b ^ 2和b*b之间有所不同

我尝试在Javascript中编码以找到第二个线性回归的结果,并找到附加的结果:

使用b ^ 2

使用b*b

结果是不同的???

javascript math

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