gpt4 book ai didi

perl - 在 Perl 中有多少种方法可以调用一个子程序而忽略它的原型(prototype)?

转载 作者:行者123 更新时间:2023-12-04 01:50:19 25 4
gpt4 key购买 nike

prototypes相关的问题大家应该都很熟悉了。在 Perl 中。这是两个大人物:

  • 它们不像其他语言的原型(prototype)那样工作,所以人们会误解它们。
  • 它们不适用于调用子程序的所有方式。

  • 第二项是我目前很好奇的一项。

    我知道在调用子例程时颠覆/解决/忽略原型(prototype)强制的两种方法:
  • 调用 sub 作为方法。 Foo->subroutine_name();
  • 使用前导 & 调用 sub印记。 &subroutine_name();

  • 还有其他我错过的有趣案例吗?

    更新:

    @brian d foy,我并不是特别想回避原型(prototype),但我想知道“有多少种方法可以做到?”我出于好奇问这个问题。

    @jrockway,我同意你的观点,我相信你已经更明确、更简洁地描述了我关于原型(prototype)问题的第一点,人们误解了它们。也许问题在于程序员的期望而不是功能。但这确实是一个我不想有的哲学问题。

    最佳答案

    通过子例程引用调用它。

    sub foo($) { print "arg is $_[0]\n" }
    my $sub = \&foo;
    $sub->();

    在 Perl 看到原型(prototype)之前调用它(这很重要,因为 perl 不会让你在使用前声明 subs):
    foo();
    sub foo($) { print "arg is $_[0]\n" }

    关于perl - 在 Perl 中有多少种方法可以调用一个子程序而忽略它的原型(prototype)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1485889/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com