2.2 声明
通常,编译语言要求你声明变量,即在使用前告诉编译器变量的存在。这是前面提到的C语言的例子:
和大多数的脚本语言(例如Python和Perl)一样,R中不需要声明变量。例如,下面这行代码:
这行代码前没有事先引用z,它完全是合法(并且普遍)的。
但是,如果要引用向量中特定的元素,就必须事先告知R。例如,我们希望y是一个二元向量,由5和12两元素构成。下面的语句无法正常工作:
对于上面的例子,必须先创建y,比如按这种方式:
这种方法同样正确,因为右边创建了一个新向量,然后绑定(bind)给变量y。
我们写R代码时,不能突然冒出诸如y[2]这样的语句,其原因归咎于R这种函数式语言的特性。在函数式语言中,读写向量中的元素,实际上由函数来完成。如果R事先不知道y是一个向量,那么函数将没有执行的对象。
对于绑定,由于变量没有事先声明,则它们的类型不受限制。以下一系列操作完全是有效的:
x先被绑定为一个数值型向量,然后被绑定为字符串变量。(再次提醒C或C++背景的程序员,x只是一个指针,在不同的时间可以指向不同类型的对象。)
时间: 2024-09-24 14:52:57