我一直在 Swift 和 Kotlin 之间来回移植代码。受到这个答案的启发,我一直在使用Swift?.let { } ?: run {}
来替代我使用的许多地方。if let ... { } else {}
不过,我真的很喜欢 Kotlin 表达式。在我看来,它比关键字特定的if let
混合物更通用。因此,为了平等起见——或者至少为了通过尝试愚蠢的实验来学习——我想我应该尝试let
在 Swift 中实现这个构造。
因为let
是 Swift 中的关键字,所以我立即发现我需要添加反引号,或者使用不同的名称,例如cull
. 这导致了这个无法编译的代码:
extension Any {
func cull<R>(block:(Self) -> R) -> R {
return block(self)
}
}
Run Code Online (Sandbox Code Playgroud)
考虑到我的学徒水平,可能存在很多问题。但最重要的是,我被告知我无法扩展 Any(此处有更详细的解释)。
所以Any不能被扩展。我可以使用任何其他语言构造来实现它,以便我可以实现类似 Kotlin 的东西吗let
?基本上:
<expression>.foo { <expressionResult> in ... }
Run Code Online (Sandbox Code Playgroud)
作为一个奖励/旁白问题,我认为即使有一种方法(我确实希望有这样我可以学习),它也不会相同,因为 Kotlin 可以用于控制流,因为我可以做来自 Kotlin 的非本地返回,但不是来自 Swift 闭包。这也正确吗?
澄清
let
基本上,我可以为指定类型实现 …
我想知道为JSON行(http://jsonlines.org/)设置哪种Content-Type ?
我尝试搜寻。它不是真正的application / json,因为整个内容不是JSON(每行都是)。
谢谢
我想知道在另一个承诺解决之后调用承诺的正确方法是什么.我知道我们可以使用async await来创建解析promise的函数.我想知道哪种形式的处理承诺是正确的做法,或者是创建发电机的好习惯?考虑以下代码:
const fetchSomething = () => new Promise((resolve) => {
setTimeout(() => resolve(console.log('future value')), 500);
});
const fetchSomethingElse = () => new Promise((resolve) => {
setTimeout(() => resolve(console.log('future value dueeee')), 3000);
});
const get = () => {
return fetchSomething().then(function(){
fetchSomethingElse()
});
}
get();
Run Code Online (Sandbox Code Playgroud)
要么
const fetchSomething = () => new Promise((resolve) => {
setTimeout(() => resolve({resolve: true}), 500);
});
const fetchSomethingElse = () => new Promise((resolve) => {
setTimeout(() => resolve({resolve: true}), 3000);
});
const get = async …
Run Code Online (Sandbox Code Playgroud) 我正在运行一个生成这样的证书请求的命令,
some text
some text
certificate is -----BEGIN CERTIFICATE REQUEST-----
MIIEiDCCAnACAQAwGDEWMBQGA1UEAxMNdGVzdHZhdWx0LmNvbTCCAiIwDQYJKoZI
hvcNAQEBBQADggIPADCCAgoCggIBALoGVu7JqQ/60rEZhP2AvRRxf0p9PcQLB8KU
yy/39m2FX5gwPbjzdmenCYzTRV/CHFh3FnK+x+UwCBkAHIBRJfyl5V/V2sdqh0Tm
YEAPQVIoWcH/P7Q8FSxdnBXepnZak33PHt6We76TdxlmJ+OSLPT4XzKX7gTPGSxW
L0tEuzLxkMieigx8TFtLGpe5CWshOe/oiUHR6g9Ehf6s4vIvT7quSGYJWgfD7PI0
+QfuOhg2ldlNKnDm+chkHFYO2rVS+42zhuGk8C/wIElgrsICl1Xpzna2ZmkuscF9
Gir2HVGPtkxB13CyK9jne8Pxr6jRwkGPny7x4czZfafz3sgVo2WmonmaXpXp8od4
aBs1b1VhJuegWo6j2r8TS9scG5o4GTxwCXNeFQnXB+tWDRV7MH6DW/gWEBV/e0QB
RKfhlPhEUd8bgzYwe8gi6ikIoY7RpyXMeV5iVwU3498+ok0v1JlF813Fdx/47nLe
AY/w3vrTJdioJ6y7h1H9GQGb1vpx9HaXsJEpSVxeeNygAJZpuWXOFBiGF2EpN0Uq
YllwAGHYe9ihKXCrRt8rgust+iE4uEw+ypRxNMTGiPxv+jkEwmd5SZODXoSh6OVb
y06bGIilBbITO5bG0bXJrOFOZzOP37oEwX/8+zNX8lEhPh4IlizwA83Rl08wkk2N
H8lL+hnBAgMBAAGgKzApBgkqhkiG9w0BCQ4xHDAaMBgGA1UdEQQRMA+CDXRlc3R2
YXVsdC5jb20wDQYJKoZIhvcNAQELBQADggIBAIwP3a80GQJJoyqO3CPPp8Kbpqtd
a11nmSLlw7U+0YRIElk1Z0oTaE1AURnEGcm2URFTMZYqHXDcMYhP4lcNp3kHSj/C
8UOT75rRDjWfkEpHdGdUOKUuLcJxjzWw0BiSsl7Bnz1aG+7qJ/iv2hYOmyDiR4g/
Tt+IIeShJpMxM63y47BzeLmQgugqyLKvgGsyeeQYCblXUBMla4geNhgBnZikGiIy
8MTvhh24CuBPi9DdGwDO8Wly4BKseBTSAAQrsbrkmSbTunSb/6ry83UDV20f2inv
+Y7UaYi6Ww07fX02oMoRY7d1M9hRDrpD5ZRP3huCDHIvLlY+tJdZL0YTHZM/wk+Z
kg44xXOEGNePoDI8RhOSOe6ixSRFt9stW+Mpe19R0UF4tA6YmNMyt43ILcljEHAh
b20SVTCbN9SICccdTjh3qxIXYK2HlRe99Tqo6NTt1xdE3AuJAjZZXDtfKqmqXMi+
HDeeQpYot3spjlklqEVZYqsWOvvWoGKnAjOLBHxD10IaqF4Epnt/OZKq01ZVIRp2
+I09tsiIpHYJCC4br0k6xwz8SUbpPUGiJ+j8N0rcd8I7xjToXtauQ9a9pAHmf0g8
8w5ZqhjSj6//xbFIhrK+SyO/R/W2s2XeUfcBmlyJFb/2zOKZ6CzbCgsjZ8xyfk13
ltjjnB1ecB0sWgpu
-----END CERTIFICATE REQUEST-----
Run Code Online (Sandbox Code Playgroud)
我想将证书自动保存到文件中,但不保存文本certificate is
或之前的任何行。
现在我正在使用command | grep -A100 "\-----BEGIN"
获取所有行并将其保存到文件中,但我只是使用100
行数,但证书不是100
行。如何获得包括和之后的确切行数-----BEGIN
以便我可以将证书写入文件?
编辑:我也刚刚尝试过这个,command | grep -A$(wc -l) "\-----BEGIN"
但它根本不打印任何内容
谢谢。
我创建了备份规则文件,就像示例https://developer.android.com/guide/topics/data/autobackup:
<?xml version="1.0" encoding="utf-8"?>
<full-backup-content xmlns:android="http://schemas.android.com/apk/res/android">
<include
domain="sharedpref"
path="." />
<exclude
domain="sharedpref"
path="nonceStorage.xml" />
<exclude
domain="sharedpref"
path="localStorage.xml" />
</full-backup-content>
Run Code Online (Sandbox Code Playgroud)
和Android Studio说有错误:
Error:(8, 15) `nonceStorage.xml` is not in an included path [FullBackupContent]
Error:(11, 15) `localStorage.xml` is not in an included path [FullBackupContent]
Run Code Online (Sandbox Code Playgroud)
错误消息完全没有信息且不可谷歌(几乎所有单词都很短).谁能解释一下,这个***对我有什么要求?如何解决这个问题?
说我有:
git fetch origin
git status "remotes/origin/master"
Run Code Online (Sandbox Code Playgroud)
我不确定我是否可以检查一个我没有检查过的分支的状态,所以让我说我检查一个分支是这样的:
git branch foo "remotes/origin/master"
git checkout foo
git status
Run Code Online (Sandbox Code Playgroud)
我的问题是2倍:
我在我的视图中设置了一个内插值:
{{firstName}}
当它绑定到的字段的值发生变化时,它不会更新。但是,该值正在更改 - 如果我将其注销到订阅内的控制台,我会看到更新后的值。它只是不会在 UI 中更新。
这是相关的代码:
从我的组件订阅:
private subscribeToCurrentPerson(): void {
this.tState$ = this.store
.pipe(select(selectors.getCurrentPerson), takeWhile(() => this.componentActive))
.subscribe((cp: Person) => {
if (cp) {
const name: string = cp.primaryName.value.parsedValue.givenNames[0];
this.firstName = name;
console.log('name: ' + name); // <-- this shows correct new value
}
});
}
Run Code Online (Sandbox Code Playgroud)
subscribeToCurrentPerson
从组件的 ngOnInit 调用。在此之前,该firstName
属性是未定义的。
该selectors.getCurrentPerson
选择是这样的:
export const getCurrentPerson: MemoizedSelector<{}, Person> =
createSelector(getTState, (tState: ITState) => {
console.log('selector: ', tState); // <-- …
Run Code Online (Sandbox Code Playgroud) 我在Cloud Firestore 安全规则文档的编写条件中看到,可以针对新写入运行(服务器端)自定义函数。我的问题是:textarea
在将用户输入写入/保存到 FireStore 之前,我什至需要担心对其进行消毒,还是 Firestore 会自动执行此操作?
如果我需要清理用户输入,那么 javascript 函数会是什么样子来做到这一点?我应该禁止或从字符串中删除哪些字符?提前致谢。
我需要开发一种以非线性方式(即平滑曲线)连接点的算法连接点的算法,如下图所示:
\n\n\n\n问题是我无法找到最佳解决方案,无论是使用贝塞尔曲线、多项式插值、曲线调整等。
\n\n简而言之,我需要一个公式,根据上图对点进行插值,在一个坐标和另一个坐标之间生成 N 个中间点。
\n\n在上图中,第一个坐标 (c1) 为 (x = 1, y = 220),第二个坐标 (c2) 为 (x = 2, y = 40)。
\n\n因此,如果我想在 c1 和 c2 之间创建 4 个中间坐标,我将必须获得一个由 4 个元素组成的数组 (x, y),如下所示:
\n\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0
\n\n[1.2, 180], [1.4, 140], [1.6, 120], [1.8, 80]\n
Run Code Online (Sandbox Code Playgroud)\n\n有人有什么想法吗?
\n我正在编写一个节点 API,并希望将 Sequelize 查询的结果保存在一个变量中,作为块外的普通 JavaScript 对象findAll
。我有一些有用的东西,但没有我想要的那么好。这是我所拥有的:
router.get('/', (req, res, next) => {
models.User.findAll({
attributes: ['id', 'name'],
raw: true
}).then(function (results) {
console.log(results); // Plain JavaScript object, which is good
// Do logic on results
//Return results
res.status(200).json({
results
});
});
});
Run Code Online (Sandbox Code Playgroud)
但我真的不想将我的所有逻辑都保留在then()
块中,尤其是因为我可能想在此之前或之后进行一些其他查询。我真的想要这样的东西(如果这是一件事):
router.get('/', (req, res, next) => {
var users = models.User.findAll({
attributes: ['id', 'name'],
raw: true
}).then(function (results) {
});
});
// Do logic on results
// return results
res.status(200).json({
results
});
}); …
Run Code Online (Sandbox Code Playgroud) javascript ×2
algorithm ×1
android ×1
angular ×1
awk ×1
ecmascript-6 ×1
express ×1
git ×1
git-checkout ×1
git-status ×1
graph ×1
grep ×1
json ×1
jsonlines ×1
kotlin ×1
math ×1
ngrx ×1
node.js ×1
promise ×1
regex ×1
sed ×1
sequelize.js ×1
swift ×1
ubuntu ×1