我正在使用 Zig 0.7.0.,并尝试从数组导入 Zig 源文件列表。每个源文件都有一个我想调用的main函数(其返回类型为)。!void该数组module_names在编译时是已知的。
这是我尝试做的:
const std = @import("std");
const log = std.log;
const module_names = [_][]const u8{
"01.zig", "02.zig", "03.zig", "04.zig", "05.zig",
};
pub fn main() void {
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
defer arena.deinit();
for (module_names) |module_name, i| {
const module = @import(module_name); // this fails
log.info("i {}", .{i});
try module.main();
}
}
Run Code Online (Sandbox Code Playgroud)
即使数组在编译时已知,@import(module_name)也会出现以下错误:
./src/main.zig:13:32: error: unable to evaluate constant expression
const module = @import(module_name);
^
./src/main.zig:13:24: note: referenced …Run Code Online (Sandbox Code Playgroud) 我有一些使用HTML Drag接口的 React组件。
特别是,我侦听dragover一个组件上的事件,并使用DataTransfer对象设置x和y位置。然后,我侦听dragleave不同组件上的事件,并从DataTransfer中检索x和y位置。
我正在使用Jest和Enzyme来测试我的组件。
如果我运行测试,则会出现此错误:
Test suite failed to run
ReferenceError: DataTransfer is not defined
Run Code Online (Sandbox Code Playgroud)
据我了解,Drag接口在Jest中不可用,因此我需要对其进行模拟,并(也许?)通过Jest globals使它可用。
现在,我DataTransfer在自己的代码中定义jest.config.js并使其成为全局变量,但是我不确定这是否是最佳解决方案。
class DataTransfer {
constructor() {
this.data = { dragX: "", dragY: "" };
this.dropEffect = "none";
this.effectAllowed = "all";
this.files = [];
this.img = "";
this.items = [];
this.types = [];
this.xOffset = 0;
this.yOffset = 0;
}
clearData() {
this.data = {};
}
getData(format) {
return this.data[format]; …Run Code Online (Sandbox Code Playgroud) 我使用 VS Code Calva扩展编写 Clojure ,它使用clj-kondo对我的代码执行静态分析。
我正在使用HugSQL从 SQL 查询和语句创建 Clojure 函数。
我知道我可以使用像conman这样的库来处理数据库连接和 HugSQL 集成,事实上我过去使用过它并且我喜欢它,但这次我想保持原样并自己与 HugSQL 交谈。
HugSQL 的def-db-fns宏接受一个 SQL 文件,并根据该文件中包含的 SQL 查询和语句创建 Clojure 函数。
我下面的代码有效,但 clj-kondo 抱怨这seed-mytable!是一个未解析的符号。
(ns my-app.db
"This namespace represents the bridge between the database world and the clojure world."
(:require [environ.core :refer [env]]
[hugsql.core :as hugsql]
[nano-id.core :refer [nano-id]]))
;; This create the function seed-mytable!, but clj-kondo doesn't (cannot?) know it.
(hugsql/def-db-fns "sql/mytable.sql")
;; The functions …Run Code Online (Sandbox Code Playgroud) 我开始使用pack为我的应用程序构建容器映像。我对不同的应用程序使用了不同的构建器:用于 Node.js 应用程序的gcr.io/buildpacks/builder和paketobuildpacks/builder:tiny和用于 Clojure 应用程序的
不必编写 Dockerfile 很棒,但我仍然不确定云原生 Buildpack 是如何工作的。构建包只是一堆可执行文件(由构建器运行),它们与手动编写 Docker多阶段构建FROM(即Dockerfile 中的多个指令)的开发人员实现相同的结果吗?
buildpack ×1
clj-kondo ×1
clojure ×1
containers ×1
docker ×1
drag ×1
hugsql ×1
javascript ×1
jestjs ×1
pack ×1
paketo ×1
reactjs ×1
unit-testing ×1
vscode-calva ×1
zig ×1