我只是想知道是否有任何未来的Lua计划允许用户在重载比较运算符时返回userdata
类型,例如>,<,==。目前,所有比较运算符默认为boolean
类型,在我看来,这可以防止许多快捷方式表达式,特别是在尝试为科学目的设计代码时,例如matrix1<matrix2
并且您想要返回矩阵。
通过设计matrix3=matrix1:less(matrix2)
可以克服这个问题。然而,许多工程师和科学家不喜欢这种语法,而是喜欢简单的方法:matrix3=matrix1<matrix2
。
C ++允许,因为我知道Python允许这种灵活性。我只是想知道这是不是从一开始就设计Lua,或者仅仅是出于某种原因而偏爱,因此在未来的版本中Lua可以允许这种灵活性。
答案 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有元数据和元方法,程序员仍然可以阅读代码并理解这里发生了什么。
我的观点是,精心设计的语言必须拯救程序员。