为此使用三元运算符是否是一个好习惯:
answersCounter = answer.length != 0 ? ++answersCounter : answersCounter;Run Code Online (Sandbox Code Playgroud)
这是我经常问自己的一个问题,因为它经常发生。或者,使用普通的 if 语句更好吗?对我来说,这看起来更简洁。
我正在使用 swarm stack deploy 部署服务。我无法部署到其他节点,我想看看出了什么问题,但无法查看在这些节点上运行的服务/任务的日志。
我试过
码头工人堆栈 ps 堆栈名称
,它显示了“错误”列下的内容,例如“没有这样的图像”和“没有合适的节点”,但我想查看正在发生的事情的完整日志,否则似乎无法解决任何问题。
我也试过
docker 服务记录 serviceid
但什么也没显示。
最后我也尝试过:
journalctl -fu docker.service
在远程节点上,但它没有太大帮助,例如我在那里看不到:“没有合适的节点”错误。有没有办法查看日志/错误?
我有以下架构:
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 函数?
所以我正在阅读关于联合类型的 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 进行区分,因为该语言没有提供特定的表达式来执行此操作,因此您需要通过所有联合类型都具有的值进行区分,即判别式。这样对吗?
在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应该如何与泛型一起使用?
我尝试以与 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的原理不一样吗?
f# ×2
android ×1
arrays ×1
docker ×1
flatten ×1
java ×1
javascript ×1
kotlin ×1
logging ×1
mongodb ×1
node.js ×1
options ×1
typescript ×1
union-types ×1