关于Redy的基本数据类型,我本打算在语法分析后在讲,但是后来想了想,如果在语法分析阶段,大家看到的只是一大堆文法,会显得枯燥,乏味。所以我把基本类型这一章节的一部份内部提前了,让大家在语法分析阶段就能看到一个简单,小的,可以运行的Redy语言。那不是更棒!!!
这一部分,只是简单的对Redy的数据类型进行说明,更详细的说明会在后面的章节讲到。在这一部分只会对这几种数据类型进行说时,其中有:整数,长整数,浮点数,字符串,布尔值,数组,迭代器。前面5个基本类型大家基本上在每种编程语言都能看到,C语言有,java有,C#有。但是在Redy里面数组的定义会和java,c语法差别很大,在Redy中数组定义是用一个方括号把数组的元素括起来,元素与元素之间用逗号隔开,例如:[2,43,5] , [“a”,3,2.3] 等。如果学过python,对这种数组的定义语法一定不会陌生吧。还有一种数据类型是迭代器,迭代器主要用于顺序的遍历一个集合中的每一元素。迭代器的概念基本上在大多数面向对象编程语言中都能看到。如果大家熟悉C++ 的标准模板库STL,经常会看到类似下面的代码:
- vector<int> a;
- a.push_back(1);
- ......
- vector<int>::iterator iter=a.begin();
- for(;iter!=a.end();++iter)
- do_thing(*iter);
上面的代码的意思为申明一个动态数组a,然后创建一个迭代器iter,用于依次遍历数组a中的每一个元素。
在Redy中迭代器其它的基本类型不一样,不能显示的申明,但是可以通过创建对象的方法来实现。在Redy中for语句的语法为:
- for identifier in <expr>
- do_thing(identifier)
- end
在redy中基本的数据分为这么两种:可改变和不可改变。
- 不可改变:一旦该对象被创建,其值不能被改变。不可改变的有这么几类:整数,长整数,浮点数,字符串,布尔值。
- 可改变:表示该对象被创建后,其内容可以被改变。数组和迭代器属于可改变的基本数据类型。
本章内容有这么一些:
- 在前面的词法分析阶段,扫描器能把源程序中的不同单词识别出来,但是这些单词是以字符串的形式存在,需要我们把不同类型的单词的字符串换化为Redy中的基本数据类型。
- Redy中的所有基本数据类型都继承Robject,关于C语言怎么实现面向对象编程可以参考http://blog.chinaunix.net/uid-26750235-id-3102371.html。
- 对基本数据类型的封装
最后:
如果大家发现源程序中的bug,希望能发邮件给我,邮件为:nosiclin@163.com