pre/short-closures

安装: 480

依赖: 0

建议者: 0

安全: 0

星标: 35

关注者: 2

分支: 5

开放问题: 2

语言:Ruby

类型:预宏

0.8.0 2019-05-02 12:23 UTC

This package is auto-updated.

Last update: 2024-09-19 01:30:27 UTC


README

文档可以在 preprocess.io 找到。

此RFC 通过以来,我们已经标准化了相同的语法。 我们仍然允许函数体和返回类型提示,但RFC中的所有内容都可以使用相同的语法来完成,直到Yay允许(7.1)。

你可以使用与JavaScript语义相似的闭包

$files = array_map(
    fn($path) => file_get_contents($path),
    $paths
);

$needles = [
    "PHP",
    "Go",
    "Javascript",
];

$matches = array_filter($files, fn($content = "") => {
    foreach ($needles as $needle) {
        if (stristr($content, $needle)) {
            return true;
        }
    }

    return false;
});

这些将被转换为

$files = array_map(
    function ($path) {
        return file_get_contents($path);
    },
    $paths
);

$needles = [
    "PHP",
    "Go",
    "Javascript",
];

$matches = array_filter($files, [$needles = $needles ?? null, $needle = $needle ?? null, "fn" => function ($content = "") use (&$needles, &$needle) {
    foreach ($needles as $needle) {
        if (stristr($content, $needle)) {
            return true;
        }
    }

    return false;
}]["fn"]);