问题列表 - 第270336页

尝试在 Swift 中实现 ?.let 模式,有可能吗?

我一直在 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基本上,我可以为指定类型实现 …

kotlin swift

0
推荐指数
1
解决办法
842
查看次数

JSON行Mime类型

我想知道为JSON行(http://jsonlines.org/)设置哪种Content-Type ?

我尝试搜寻。它不是真正的application / json,因为整个内容不是JSON(每行都是)。

谢谢

json jsonlines

6
推荐指数
3
解决办法
607
查看次数

正确的方法来排序每个返回promise javascript的两个异步操作

我想知道在另一个承诺解决之后调用承诺的正确方法是什么.我知道我们可以使用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)

javascript promise ecmascript-6

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

grep 匹配整个证书?

我正在运行一个生成这样的证书请求的命令,

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"但它根本不打印任何内容

谢谢。

regex ubuntu awk grep sed

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

Android完整备份:"file.xml不在包含的路径中"

我创建了备份规则文件,就像示例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)

错误消息完全没有信息且不可谷歌(几乎所有单词都很短).谁能解释一下,这个***对我有什么要求?如何解决这个问题?

android android-backup-service

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

没有签出分支的git状态

说我有:

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倍:

  1. 我可以在不查看分支的情况下获取分支的git状态吗?
  2. foo的git状态是否会"不洁净"?我认为foo的git状态总是"干净"和"与遥控器同步".

git git-checkout git-status

3
推荐指数
1
解决办法
310
查看次数

角度内插值未在订阅时更新

  • 角 6.0.1
  • ngRx 6.0.1

我在我的视图中设置了一个内插值:

{{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)

ngrx angular angular-changedetection

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

Firestore - 清理文本区域输入?

我在Cloud Firestore 安全规则文档的编写条件中看到,可以针对新写入运行(服务器端)自定义函数。我的问题是:textarea在将用户输入写入/保存到 FireStore 之前,我什至需要担心对其进行消毒,还是 Firestore 会自动执行此操作?

如果我需要清理用户输入,那么 javascript 函数会是什么样子来做到这一点?我应该禁止或从字符串中删除哪些字符?提前致谢。

javascript firebase-security google-cloud-firestore

5
推荐指数
1
解决办法
1472
查看次数

用曲线连接图中点的算法

我需要开发一种以非线性方式(即平滑曲线)连接点的算法连接点的算法,如下图所示:

\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

algorithm math graph

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

将 Sequelize 查询中的数据保存为变量中的普通 JavaScript 对象?

我正在编写一个节点 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)

node.js express sequelize.js

5
推荐指数
1
解决办法
3184
查看次数