【发布时间】:2010-12-12 07:39:27
【问题描述】:
为什么 Perl 不支持普通的 [] 运算符来索引字符串?
几乎所有主要的编程语言都支持此运算符,尤其是另外两个“P”:Python 和 PHP。此外,我确实认为实现这个小语法应该很容易。另外,作为 Perl 编程语言的哲学——我们尽可能地懒惰,那么我们为什么还要费心使用函数来索引字符串呢?
Perl 6 会支持这种语法吗?
【问题讨论】:
-
这不是一个功能。这只是语法。
-
[]一点都不“正常”。不仅如此,[]可能会也可能不会被实现为一个函数,尽管它是语法(例如,在 Ruby 中[]实际上是一个方法)。 -
旁注:Perl、Python 和 PHP 不需要共享任何特性或语法。这三种语言有非常不同的语法、非常不同的语义和非常不同的设计目标。如果您期望它们相同,那么您将大失所望。 (例如,在 Haskell 中,从字符串中提取第 n 个字符或从任何列表中提取第 n 项的运算符是
$$。没有人抱怨 Haskell 没有为此目的使用[]...) -
@Daniel:不太正确,Haskell 使用
!!。更多示例:SML 使用String.sub,Caml 使用String.get(或.[]),J 使用{~,XSLT 使用substring,Java 使用.charAt()。