gpt4 book ai didi

perl - 我应该在编译时而不是运行时建立继承,如果是,为什么?

转载 作者:行者123 更新时间:2023-12-04 14:20:48 25 4
gpt4 key购买 nike

Perl 中的 AFAIK 继承通常是这样设置的:

package Mule;
our @ISA = ("Horse", "Donkey");

有没有示例 use base (或 use parent )更好吗?

最佳答案

use base qw(Horse Donkey);

这大致相当于:
BEGIN {
require Horse;
require Donkey;
push @ISA, qw(Horse Donkey);
}

如果您需要加载模块代码并从它们继承,它会更整洁。顺便说一句,多重继承存在问题,但这是一个不同的问题:)

编辑:编译时与运行时的优势:
  • 您可以使用 use base 进行编译时检查的安全性,这意味着如果文件系统上不存在您的基本模块,您的脚本甚至都不会启动。
  • 如果您想决定在运行时使用给定模块,那么您可以测试该模块并将其添加到您的 parent :

    if (eval { 需要 X }) {
    推@ISA,'X';
    }
  • 关于perl - 我应该在编译时而不是运行时建立继承,如果是,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2257315/

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