有没有办法获得特定Git提交的文件SHA?
有两个命令可以:
git show COMMIT_VERSION:myfile.txt > ~/tmp/myfile.txt
git hash-object ./tmp/myfile.txt
但是,也许在Git中有特定的命令可以做到这一点?
据我所知,Erlang提供了错误处理和进程隔离的高级功能.
我正在构建一个系统,允许用户提交他们的代码以便在共享服务器环境中执行,并且需要使其安全.
要求是:
是否可以通过Erlang实现所有这些并保持其性能效率?
有输入X
列表和输出列表Y
.每个输入都可以1
成功或0
失败.
X = [6 7 8]
Y = [1 1 0]
Run Code Online (Sandbox Code Playgroud)
将输入X
分成两组的Julia方法是什么- 成功与失败?
XSuccess = [6 7]
XFails = [8]
Run Code Online (Sandbox Code Playgroud)
我可以用循环来做,但似乎至少有两种更好的方法来解决它 - 使用find函数和列表推导.
可以告诉TypeScript编译器使用outFile
选项将所有文件捆绑在一起成为单个构建文件。
但是,如果捆绑*的.ts文件只,并没有依赖关系,从node_modules
或AMD装载机的实施。
我想知道是否可以告诉TypeScript编译器将所有内容捆绑在该文件中吗?
聚苯乙烯
我知道Brunch,WebPack和其他捆绑工具,但是对于简单的情况,这似乎有些过头了,我只想在可能的情况下放弃TS编译器。
假设我们尝试创建HTML构建帮助器
build([
'html', { lang: 'en' }, [
['head', [
['title', 'Hello, world!']
]
]
])
Run Code Online (Sandbox Code Playgroud)
the参数的类型声明build
将是(实际上会更复杂,但让我们考虑最简单的情况)
type Node = [string, { [key: string]: string }, Node[]]
Run Code Online (Sandbox Code Playgroud)
不幸的是,id无效,因为TypeScript抱怨
TS2456: Type alias 'Node' circularly references itself.
Run Code Online (Sandbox Code Playgroud)
有什么解决方法吗?
将列表显示为具有 3 列的表格,项目均匀分布,10px
每边和行之间都有边距。
.item { width: 10px; height: 10px; background: black; }
.grid { background: #eee; }
<div class="grid">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
应该呈现为
可以通过flex
布局实现这一点,但它需要更复杂的 HTML,请参见下面的示例。
.item { width: 10px; height: 10px; background: black; }
.grid { background: #eee; }
<div class="grid">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
.item { width: 10px; height: 10px; background: black; }
.grid { background: …
Run Code Online (Sandbox Code Playgroud)是否可以逐行运行在 VSCode 中打开的 JavaScript/TypeScript 文件?
就像您按 CMD+XXX+Enter 之类的键,它就会运行当前行或代码块?
因此您可以交互地使用代码。
聚苯乙烯
我不想打开 JS 控制台 - 我想运行当前在编辑器中打开的文件中的代码(或代码片段)。
它应该是有状态的,您运行第一行,然后运行第二行,等等。“Code Runner”插件无法以这种方式工作,它会忘记之前的运行。因此,您运行第一行,然后尝试执行第二行 - 它会抱怨第一行中定义的未定义变量。
我定义了get(o, key)
应该与满足{ get: (key: K) => R }
接口的任何对象一起工作的函数。
此外,我想将结果限制R
为不是undefined
. 那可能吗?
由于Params::get(key: string): number | undefined
返回的方法,如何更改下面的示例使其无法编译undefined
?
function get<K, R>(o: { get: (key: K) => R }, key: K): R {
return o.get(key);
}
class Params {
constructor(public values: { [key: string]: number }) { }
get(key: string): number | undefined {
return this.values[key]
}
}
const params = new Params({ a: 10 });
console.log(get(params, "a"))
Run Code Online (Sandbox Code Playgroud) 重 CPU 绑定任务可能会阻塞线程并延迟其他等待执行的任务。那是因为JVM不能中断正在运行的线程,需要程序员的帮助和手动中断。
因此,在 Java/Kotlin 中编写 CPU 绑定任务需要手动干预才能使事情顺利运行,就像Sequence
在下面的代码中在 Kotlin 中使用一样。
fun simple(): Sequence<Int> = sequence { // sequence builder
for (i in 1..3) {
Thread.sleep(100) // pretend we are computing it
yield(i) // yield next value
}
}
fun main() {
simple().forEach { value -> println(value) }
}
Run Code Online (Sandbox Code Playgroud)
据我了解,原因是具有能够中断正在运行的线程的抢占式调度程序具有性能开销。
但是有一个开关不是更好,所以你可以选择吗?如果您想使用更快的非抢占式调度程序运行 JVM。或者使用较慢的 pre-emtpive(在 N 条指令后中断和切换胎面)但能够平稳运行并且不需要体力劳动来做到这一点?
我想知道为什么 Java/Kotlin 没有这样的 JVM 开关来允许选择你想要的模式。
有一个getStackTrace()
函数可以从当前异常中获取堆栈跟踪。
但它不适用于特定异常,此代码将不起作用error.getStackTrace()
我需要它来实现log
功能
proc error*(message: string, exception: Exception): void =
stderr.write_line fmt" {message}"
stderr.write_line exception.getStackTrace()
Run Code Online (Sandbox Code Playgroud)