Lua - 比较运算符的重载

时间:2018-02-03 00:39:35

标签: lua

我只是想知道是否有任何未来的Lua计划允许用户在重载比较运算符时返回userdata类型,例如&gt;,&lt;,==。目前,所有比较运算符默认为boolean类型,在我看来,这可以防止许多快捷方式表达式,特别是在尝试为科学目的设计代码时,例如matrix1<matrix2并且您想要返回矩阵。

通过设计matrix3=matrix1:less(matrix2)可以克服这个问题。然而,许多工程师和科学家不喜欢这种语法,而是喜欢简单的方法:matrix3=matrix1<matrix2

C ++允许,因为我知道Python允许这种灵活性。我只是想知道这是不是从一开始就设计Lua,或者仅仅是出于某种原因而偏爱,因此在未来的版本中Lua可以允许这种灵活性。

1 个答案:

答案 0 :(得分:0)

我不是lua作者,但可以保证&gt;,&lt;和==在lua中即使将来也会返回布尔值。 正如您所提到的,C ++和Python允许这样做。 Python接近C ++,因为Lua接近C,我的意思是某种哲学。所以对于那些喜欢C ++的人来说,Lua中缺少功能,而对于C程序员来说,这是OOP语言的一部分。

想象有人会读你的程序:)

<

什么? matrix3 = m1 > m2 matrix3 = m1 == m1 matrix3 = m1 ~= m2 运算符构建矩阵而不是比较?

<?php 
if(isset($_SESSION['count'])){
    $count = $_SESSION['count'];
}else{
    $count = $_SESSION['count'] = 10;
}

if ($count){
    echo "<form action='try1.php' method='post'>"."<input type='text' 
name='link'>";
    echo "<input type='submit' name='link' value='done'>";
    $_SESSION['count']--;
}
 ?>

如果语言支持这样的事情,那就用火来杀死它(从C哲学点开始)

Lua是我唯一了解完美设计抽象的脚本语言的人,我的意思是,尽管Lua有元数据和元方法,程序员仍然可以阅读代码并理解这里发生了什么。

我的观点是,精心设计的语言必须拯救程序员。