摘要: ruby的数组基本使用,跟c#中的数组比起来,最不习惯的区别在于允许负索引(跟javascript到有几分相似)arr=[3,4,5,6,7,8,9]puts arr[0] # 3puts arr.first # 3puts arr[arr.length-1] # 9puts arr[arr.size-1] # 9puts arr.last #9puts arr[-1] #9,下标为-1,即... 阅读全文
posted @ 2010-02-11 21:00 菩提树下的杨过 阅读(1129) 评论(0) 推荐(0) 编辑
摘要: ruby中的module与.net中的namespace有点类似,可以用来区分同名但属于不同开发者(或组织)的代码。下面的代码,定义了一个Me模块,里面的sqrt与Math模块中的sqrt重名,另外还有一个重名常量PI#定义一个模块(有点类似.net中的命名空间)module Me def sqrt(num1,num2=-1) return "num1=#{num1},num2=#{num2}"... 阅读全文
posted @ 2010-02-11 14:37 菩提树下的杨过 阅读(5352) 评论(0) 推荐(1) 编辑
摘要: 动态语言之所以“动态”,最明显的特征就是:类实例的行为/属性可以在new出后,动态修改!个人觉得这种处理相对java/c#(静态语言)来说,更符合现实世界。比如:一个人刚出生时,除了哭、吃奶等这些基本原始本能,其它的几乎全都不会(原始本能可理解类定义中最开始定义的属性和方法),但随着时间推移,学会了看书,走路,说话...(相当于新增了方法/属性),再往后的人生谁也无法预料,... 阅读全文
posted @ 2010-02-11 11:21 菩提树下的杨过 阅读(1358) 评论(0) 推荐(0) 编辑
摘要: 看了几天ruby,发现c#中很多一直被称道的语法特性,ruby早在几年前就有了:1.c#中的params关键字 class Program { static void Main(string[] args) { Console.WriteLine(Sum()); Console.WriteLine(Sum(3,6)); Console.Read(); } static int Sum(params... 阅读全文
posted @ 2010-02-11 10:57 菩提树下的杨过 阅读(1048) 评论(0) 推荐(0) 编辑