微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从承诺中退出承诺?

如何从承诺中退出承诺? perl6文档不提供简单的方法.例如:
my $x = start {
    loop { # loop forever until "quit" is seen
        my $y = prompt("Say something: ");
        if $y ~~ / quit / { 
            # I want to exit the promise from here; 
            # "break" and "this.break" are not defined;
            # "return" does not break the promise;
            # I do NOT want an error exception when exiting a promise;
            # I want to return a value as the result of this promise;
        }
        else { say $y; }
    }
}

我不想永远处于承诺循环中. break()和this.break()无法识别,返回不会破坏承诺.

解决方法

使用 last keyword退出循环.

保持的起始块值是其最后一个语句返回的值.

所以:

my $x = start {
    loop { # loop forever until "quit" is seen
        my $y = prompt("Say something: ");
        if $y ~~ / quit / {
            last 
        }
        else { say $y; }
    }
    42 # <-- The promise will be kept with value `42`
}

原文地址:https://www.jb51.cc/Perl/172161.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐