Chinaunix首页 | 论坛 | 博客
  • 博客访问: 236122
  • 博文数量: 32
  • 博客积分: 424
  • 博客等级: 准尉
  • 技术积分: 465
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-02 10:23
文章分类

全部博文(32)

文章存档

2012年(32)

分类: Python/Ruby

2012-03-03 12:51:32


关于Redy的基本数据类型,我本打算在语法分析后在讲,但是后来想了想,如果在语法分析阶段,大家看到的只是一大堆文法,会显得枯燥,乏味。所以我把基本类型这一章节的一部份内部提前了,让大家在语法分析阶段就能看到一个简单,小的,可以运行的Redy语言。那不是更棒!!!

这一部分,只是简单的对Redy的数据类型进行说明,更详细的说明会在后面的章节讲到。在这一部分只会对这几种数据类型进行说时,其中有:整数,长整数,浮点数,字符串,布尔值,数组,迭代器。前面5个基本类型大家基本上在每种编程语言都能看到,C语言有,java有,C#有。但是在Redy里面数组的定义会和java,c语法差别很大,在Redy中数组定义是用一个方括号把数组的元素括起来,元素与元素之间用逗号隔开,例如:[2,43,5]   ,  [“a”,3,2.3] 等。如果学过python,对这种数组的定义语法一定不会陌生吧。还有一种数据类型是迭代器,迭代器主要用于顺序的遍历一个集合中的每一元素。迭代器的概念基本上在大多数面向对象编程语言中都能看到。如果大家熟悉C++ 的标准模板库STL,经常会看到类似下面的代码:
  1. vector<int> a;
  2. a.push_back(1);
  3. ......
  4. vector<int>::iterator iter=a.begin();
  5. for(;iter!=a.end();++iter)
  6.     do_thing(*iter);
上面的代码的意思为申明一个动态数组a,然后创建一个迭代器iter,用于依次遍历数组a中的每一个元素。
在Redy中迭代器其它的基本类型不一样,不能显示的申明,但是可以通过创建对象的方法来实现。在Redy中for语句的语法为:
  1. for identifier in <expr>
  2.     do_thing(identifier)
  3. end
表示该部分为算述表达式,算法表达式的返回值必须是一个可顺序遍历的集合。正是因为for语句,所以迭代器才会被归入基本的数据类型里面。

在redy中基本的数据分为这么两种:可改变和不可改变。
  1. 不可改变:一旦该对象被创建,其值不能被改变。不可改变的有这么几类:整数,长整数,浮点数,字符串,布尔值。
  2.  可改变:表示该对象被创建后,其内容可以被改变。数组和迭代器属于可改变的基本数据类型。
本章内容有这么一些:
  1. 在前面的词法分析阶段,扫描器能把源程序中的不同单词识别出来,但是这些单词是以字符串的形式存在,需要我们把不同类型的单词的字符串换化为Redy中的基本数据类型。
  2. Redy中的所有基本数据类型都继承Robject,关于C语言怎么实现面向对象编程可以参考http://blog.chinaunix.net/uid-26750235-id-3102371.html
  3. 对基本数据类型的封装

最后:
如果大家发现源程序中的bug,希望能发邮件给我,邮件为:nosiclin@163.com


阅读(1666) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~