arrays - 检查数组中元素的更快方法?

标签 arrays perl

此函数与 exists 的作用相同使用哈希。

我打算经常使用它。

它可以以某种方式优化吗?

my @a = qw/a b c d/;

my $ret = array_exists("b", @a);

sub array_exists {
    my ($var, @a) = @_;

    foreach my $e (@a) {
        if ($var eq $e) {
            return 1;
        }
    }
    return 0;
}

最佳答案

您可以使用 smart matching ,在 Perl 5.10 及更高版本中可用:

if ("b" ~~ @a) {
    # "b" exists in @a
}

这应该比函数调用快得多。

关于arrays - 检查数组中元素的更快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6942082/

相关文章:

c++ - float 组转换

javascript 将对象转换为数组

perl - Strawberry Perl v5.30.0 无法安装 Tcl (Windows 10)

perl - 使用 WWW::Mechanize,如何添加带下划线的小写标题?

regex - 带有 perl 正则表达式的 git 日志

php - 将MySql表数据选入数组

java - 循环内声明的数组在循环外无法识别

arrays - Numpy 在所有元素之间做乘积,然后插入到一个三角形的二维数组中

perl - 在 Perl 中读取输入文件并将其放入带有空格分隔符的数组中

multithreading - Perl 中用于异步 HTTP 请求的线程 "tagging"