对于数组的语法哪个更好?

时间:2012-01-13 04:02:12

标签: syntax command

我正在编写脚本语言,但在决定语法方面我需要帮助。我主要在决定两件事时遇到问题。

首先,调用数组中的部件的语法。我在考虑两个选项中的一个,但如果你愿意,可以给我建议。

假设我有一个Javascript中的数组将表示为

var people = [
    ["Joe",34],
    ["Bill",29],
    ["Steve",36]
];

选项是

Option One
    people[2][1]
    returns 36

Option Two
    people[2,1]
    returns 36

其次,调用函数的语法。我在考虑两个选项中的一个,但如果你愿意,可以给我建议。

假设我有一个函数,在Javascript中将表示为

function foo(bar,hi) {
    return bar;
}

选项是

Option One
    The same as Javascript

    example:
    function foo(bar,hi) {
        return bar
    }

Option Two
    The same as Javascript, but
    - separating each private variable with it's own set of parentheses
    - no need to state "function" in front

    example:
    foo(bar)(hi){
        return bar
    }

Option Three
    The same as Javascript, but
    - a colon to separate the namespace from the private variables
    - no parentheses due to the lack of need

    example:
    foo:bar,hi{
        return bar
    }

任何和所有建议和建议都会非常有用!我希望你们提出一些很好的想法来做到这一点,并请提出任何语法建议。我还需要其他一些帮助,但这些并不是什么重大决定。

提前致谢!

1 个答案:

答案 0 :(得分:1)

1)决定不是语法之一 - 您决定是否将2D数组作为基本类型。如果你的目标是写一个简单的语言,这肯定是矫枉过正。嵌套数组足够好(人[2] [1])。

2)由于您将不得不自己解析这些函数模式(从我收集的内容中您无法访问正则表达式),您应该根据解析的简易性进行选择。对我来说,这显然是选项#1,因为你对函数的任何声明都有明确的起点(保留字“函数”)。在解析脚本时,如果您的令牌缓冲区只包含“function”,那么您知道下面的代码将是一个函数声明。对于你的其他任何提案都不能这样说。