小编Fra*_*raK的帖子

三元运算符用于增加变量

为此使用三元运算符是否是一个好习惯:

answersCounter = answer.length != 0 ? ++answersCounter : answersCounter;
Run Code Online (Sandbox Code Playgroud)

这是我经常问自己的一个问题,因为它经常发生。或者,使用普通的 if 语句更好吗?对我来说,这看起来更简洁。

javascript conditional-operator

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

堆栈部署服务的 Docker 日志/错误

我正在使用 swarm stack deploy 部署服务。我无法部署到其他节点,我想看看出了什么问题,但无法查看在这些节点上运行的服务/任务的日志。

我试过

码头工人堆栈 ps 堆栈名称

,它显示了“错误”列下的内容,例如“没有这样的图像”和“没有合适的节点”,但我想查看正在发生的事情的完整日志,否则似乎无法解决任何问题。

我也试过

docker 服务记录 serviceid

但什么也没显示。

最后我也尝试过:

journalctl -fu docker.service

在远程节点上,但它没有太大帮助,例如我在那里看不到:“没有合适的节点”错误。有没有办法查看日志/错误?

logging docker docker-swarm-mode

5
推荐指数
2
解决办法
5679
查看次数

ObjectId 数组中的猫鼬 indexOf

我有以下架构:

var daySchema = new Schema({
date: {
    type: Date,
    required: true
},
activities: [{
    type: Schema.Types.ObjectId,
    ref: 'Activity'
}]
});
Run Code Online (Sandbox Code Playgroud)

我正在删除 daySchema 中的一项活动:

var index = day.activities.indexOf("584aa9c16791eb1ec4ad8e73");
day.activities.splice(index, 1);
Run Code Online (Sandbox Code Playgroud)

有人可以解释我为什么这样做吗?数组“活动”是一个“ObjectId”数组。所以“indexOf”不应该与对象一起工作,但“indexOf”仍然能够根据id找到元素。这让我发疯了,这里还有其他事情吗,也许是 ObjectId 中的 map 函数?

arrays mongodb node.js

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

差异联合类型和可区分联合打字稿/F#

所以我正在阅读关于联合类型的 Typescript 官方文档,我认为它与 F# 中的“有区别的联合”相同(假设它们具有不同的语法但相同的概念),因为我有 F# 背景并给出了事实两者都得到微软的支持。但是查看文档,F# 并没有真正区分“联合类型”和“受歧视的联合”:https : //fsharpforfunandprofit.com/posts/discriminated-unions/

但是,Typescript 确实区分了这两个概念:

联合类型:https : //www.typescriptlang.org/docs/handbook/advanced-types.html#union-types

歧视工会:https : //www.typescriptlang.org/docs/handbook/advanced-types.html#discriminated-unions

所以我想知道概念本身是否真的有区别还是只是一些语言相关的概念?

到目前为止我所理解的是 F# 中的联合类型也是可区分的联合,因为您可以使用匹配表达式和解构来区分联合类型。

但是,您不能使用 Typescript 进行区分,因为该语言没有提供特定的表达式来执行此操作,因此您需要通过所有联合类型都具有的值进行区分,即判别式。这样对吗?

f# functional-programming typescript union-types

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

F#Option.flatten错误,无

在Option模块上应用flatten功能时出错:

let flatten  =
function
| None          -> None
| Some innerOpt -> innerOpt
Run Code Online (Sandbox Code Playgroud)

这只适用于像以下那样的imputs:但是如果输入为"None",那么我会收到此错误:

flatten None 

error FS0030: Value restriction. The value 'it' has been inferred to have generic type
    val it : '_a option
Either define 'it' as a simple data term, make it a function with explicit arguments or, if you do not intend for it to be generic, add a type annotation.
Run Code Online (Sandbox Code Playgroud)

在None情况下,flatten应该如何与泛型一起使用?

f# options flatten

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

Kotlin setOnClickListener 使用方法引用不起作用

我尝试以与 Java 中相同的方式使用方法引用:

button.setOnClickListener(this::clickListener);
Run Code Online (Sandbox Code Playgroud)

使用科特林:

button.setOnClickListener {this::clickListener}
Run Code Online (Sandbox Code Playgroud)

但是这在 Kotlin 中不起作用,解决方案是使用 labmda 表达式实际调用函数:

button.setOnClickListener {clickListener()}
Run Code Online (Sandbox Code Playgroud)

为什么 Kotlin 在这种情况下不接受方法引用?和Java的原理不一样吗?

java android kotlin method-reference

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