小编Max*_*ber的帖子

在MySQL查询中遍历JSON

我正在寻找类似forEachMySQL中的JSON数组的东西。

我在MySQL JSON数据类型中使用经理ID,如下所示:[1, 2, 3, 4, 5],我想对列表中的每个项目执行操作。

一个简单的解决方案是使用一个从0开始到VAR_MANAGER_ID为null时结束的计数器进行WHILE循环。这是一个WHILE循环内部外观的精心设计的示例:

SET VAR_PATH = CONCAT('$[', COUNTER, ']');
SET VAR_MANAGER_ID = JSON_PARSE(VAR_MANAGER_IDS, PATH);

# See if we've reached the end of the list
IF VAR_MANAGER_ID IS NULL
THEN 
    BREAK
END;
INSERT INTO LU_MANAGER (MANAGER_ID) VALUES (VAR_MANAGER_ID);
Run Code Online (Sandbox Code Playgroud)

但是必须有更好的方法!我该怎么做:

FOREACH JSON_PARSE(VAR_MANAGER_IDS, '$[*]') AS VAR_MANAGER_ID
    INSERT INTO LU_MANAGER (MANAGER_ID) VALUES (VAR_MANAGER_ID);
Run Code Online (Sandbox Code Playgroud)

mysql json stored-procedures

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

如何使用 TypeScript 编译器 API 中的 --incremental ?

TypeScript 最近添加了“--incremental”编译器选项。

如何将它与 TS 编译器 API 一起使用?

该程序不会生成 .tsbuildinfo 文件,第二次运行也不会更快:

import * as ts from "typescript";

const program = ts.createProgram(["./src/foo.ts"], {
    incremental: true,
    tsBuildInfoFile: "./tsbuildinfo"
});
const emit = program.emit();
console.log('emitted', JSON.stringify(emit)); // { emitSkipped: false, diagnostics: []}
Run Code Online (Sandbox Code Playgroud)

我认为 TS 实际上并没有关注 tsBuildInfo 文件的路径,因为如果我将选项设置tsBuildInfoFile为像“@@@@@@”这样的废话,那没有什么区别。

typescript typescript-compiler-api

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

如何在JSFiddle上使用CommonJS模块?

有没有办法在像plnkr,JSFiddle或JS Bin这样的网站上使用CommonJS模块?我想把它变成一个全球性的.

这是为了轻松提供演示而无需使用UMD.

我找到了Github repos,然后使用rawgit.com引用源文件.

javascript commonjs jsfiddle browserify

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

如何让集成的 VSCode 终端不捕获 CTRL-E、CTRL-X 和 CTRL-A?

如何让集成的 VSCode 终端不捕获 CTRL-E、CTRL-X 和 CTRL-A?

实际行为:执行键盘快捷键通常在终端之外执行的操作

预期行为:

CTRL-XE 应该在集成终端中打开 $EDITOR,就像在基于 Readline 的终端中一样

visual-studio-code vscode-settings

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

Why doesn't this proof require extensionality? (Agda)

The following proves the equality of two functions:

?-? : ? {A B : Set} (f : A ? B) ? (? (x : A) ? f x) ? f
?-? f = refl
Run Code Online (Sandbox Code Playgroud)

Why doesn't it need extensionality? How does Agda know that the function to the left of the ? simplifies to f?

equality theorem-proving agda

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

使用模块无限循环 OCaml 类型检查器如何工作?

此示例中的 OCaml 类型检查器无限循环:

     module type I =
     sig
       module type A
       module F :
         functor(X :
         sig
           module type A = A
           module F : functor(X : A) -> sig end
         end) -> sig end
     end

     module type J =
     sig
       module type A = I
       module F : functor(X : I) -> sig end
     end

     (* Try to check J <= I *)

     module Loop(X : J) = (X : I)
Run Code Online (Sandbox Code Playgroud)

资料来源:Andreas Rossberg 改编 Mark Lillibridge 的例子

我不太清楚这是如何/为什么工作的。特别是:

  • 这个例子是最小的吗? …

ocaml

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

扁平化数组:0来自哪里?

这个挑战是在没有定义任何新功能的情况下展平数组:

// challenge
const arr = [1, [2]]
const flattened = arr.reduce(/*your code here, no function expressions or declarations allowed*/, [])
console.log(flattened) // expected: [1, 2]
Run Code Online (Sandbox Code Playgroud)

我的解决方案不起作用,但真正让我烦恼的是我不知道0它来自哪里:

// Solution 1
const arr = [1, [2]]
const flattened = arr.reduce(Function.prototype.call.bind(Array.prototype.concat), [])
console.log(flattened) // unexpected result: [1, 0, 1, [1], 2, 1, 1, [1]]
Run Code Online (Sandbox Code Playgroud)

我希望代码的行为类似于follow,它按预期工作:

// Solution 2
const arr = [1, [2]]
const flattenReducer = (x, y) => Function.prototype.call.bind(Array.prototype.concat)(x, y)
const flattened = arr.reduce(flattenReducer, [])
console.log(flattened) // logs the …
Run Code Online (Sandbox Code Playgroud)

javascript arrays function function.prototype

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

是否有 es-lint 或类似规则来禁用“extends”

我想使用 ES2015 类,但不希望任何继承进入我们的代码库。是否有一个自定义的 eslint 规则,比如“不扩展”或“不继承”,所以人们不能这样做class A extends B {}

我对此进行了相当多的搜索,但我认为我可能使用了错误的搜索词。

javascript class ecmascript-6

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

Inductive 和 CoInduction 之间的唯一区别是对其使用的格式良好性检查(在 Coq 中)吗?

换句话说:如果我们分别删除归纳和共归纳数据类型使用的终止检查和防护条件,归纳/共归纳和修复/共归纳之间是否不再有根本区别?

\n

我所说的“根本差异”是指 Coq\xe2\x80\x93 核心演算的差异,而不是语法和证明搜索等方面的差异。

\n

这似乎最终归结为一个关于构造微积分的问题。

\n

注意:我知道一个定理证明者跳过了递归/核心递归的终止检查/防护可以证明False\xe2\x80\x93so,如果有帮助,请将其视为有关非完全编程的问题而不是证明。

\n

coq codata corecursion coinduction

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

为什么这个闭包需要内联或“dyn”?`dyn` 在这里做什么?

我对下面的生命周期发生了什么感到困惑:

struct Foo{}
impl Foo {
    fn foo(&self, _s: &str) {}
}

fn main() {
    let foo = &Foo{};
    let closure = |s| foo.foo(s);

    // Part 1: error message about wrong lifetime in FnOnce
    take_closure(closure); 

    // Part 2: no error when inlined
    take_closure(|s| foo.foo(s));

    // Part 3: no error when `dyn`d and given explicit signature
    let closure: &dyn Fn(&str) -> _ = &|s| foo.foo(s);
    take_closure(closure);
}

fn take_closure(f: impl Fn(&str) -> ()) {
    let s = get_string();
    f(&s)
}

fn …
Run Code Online (Sandbox Code Playgroud)

lambda closures lifetime rust borrow-checker

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