变量一定要有类型吗(二) 变量一定要有类型吗?不一定。 在《The Ruby Way 2nd》一书中,1.2.3节 Constants, Variables, and Types “In Ruby, variables do not have types, but the objects they refer to still have types. ” 在Ruby中,变量没有类型,但变量引用的对象有类型。 1.5.2节 Perspectives in Programming “In Ruby, variables don't have classes; only values hav ...
先讨论一下Ruby是不是强类型。 1).在《Beyond Java》September 2005 一书 6.1.2节Typing 中,Bruce Tate举例 irb(main):015:0> "fish"+4 TypeError: cannot convert Fixnum into String from (irb):15:in‘+’ from (irb):15 从而得出结论: 引用 That means Ruby is strongly typed. 我们知道,Ruby是动态语言,在运行中边解释、边检测、边执 ...
先看一句代码: ruby 代码  (1..9).each {|i| print  i  if  i<7}    # =>123456   迭代器each 是数组类的一个方法;大括号{  }里的代码是代码块,简称块。你可以用大括号{  }将代码组织成块,也可以用 do…end将代码组织成块。大括号{  }的优先级高于do…end。 ...
一本入门小书,不想涉及正则表达式,但是正则表达式与Ruby语言联系如此紧密,总让人感觉绕不开它。所以匆匆结束字符串的介绍,边学边说正则表达式。 正则表达式之强大、复杂,由来已久。自从1956年提出了“正则集代数”,正则表达式就逐渐被广泛地应用于操作系统,编程语言,算法设计,人工智能…… 现在,除了Perl这样支持强大正则表达式功能的语言之外,Java,JavaScript, C# 等语言都纷纷支持正则表达式,只不过支持的程度不同。而Ruby正是一种强烈而灵活地支持正则表达式的语言。 下面,我努力尝试尽可能简单地描述Ruby中的正则表达式 ...
一. 生成一个字符串 字符串是String类的对象,一般使用字面值来创建。 ruby 代码 #E8.2-1.rb       str1 = 'this is str1'    str2 = "this is str2"   str3 = %q/this is str3/    ...
一. 建立一个数组 ruby 代码 #E8.1-1.rb       arr1=[]    arr2=Array.new   arr3=['4 ','5 ','6 ']       print arr1,  "\n"   print arr2,  &quo ...
程序 E7.3-1.rb中先写了Me模块,然后include  Me模块,实现了Mix-in功能,但是,这样没能做到代码复用。 我将 Me模块写在文件 E7.4-1.rb中,将 Person类写在文件 E7.4-2.rb中,这时候 Student类如何使用 Me模块和 Person类呢?这里要用到require方法。 看程序 E7.4-3.rb : ruby 代码 #E7.4-3.rb      require "E7.4-1"   require ...
糅和,也译作混合插入,也许就称作 Mix-in 比较合适。 现实生活中,一个乒乓球不仅是球类物体,也是有弹性的物体。 C++ 支持多重继承,多重继承有时会导致继承关系的混乱,Java只提供了单继承,通过接口可以得到多重继承的优点,又没有多重继承的缺点。Ruby 也是单继承,不是通过接口,而是通过Mix-in 模块,来实现多重继承的优点。 模块的第三个作用:实现了类似多重继承的功能。 我们有一个Student类,有着Person类的属性和方法,还会做数学题——求平方根。已经有了Me模块,只要Mix-in 在Student类里就可以了。 看程序 E7.3-1.rb ...
7.1  模块 我们常常把许多零散的小物件放在一个盒子里,或者放在一个抽屉里,这些小物件可能是铅笔,墨水,字典等学习用品,也有可能是不相关的几件物品。在程序中,相关的、不相关的代码的组合,叫作模块。一般情况下,我们总是把功能相关的代码放在一个模块里。 把功能相关的程序代码放在一个模块里,体现了模块的第一个作用:可以被其它程序代码重复使用。 看程序 E7.1-1.rb : ruby 代码 #E7.1-1.rb      puts  Math.sqrt(2)  &nb ...
在Ruby里,要读取,或是改变对象的属性,唯一的途径是调用对象的方法。控制了对方法的访问,也就控制了对对象属性的访问。 控制对方法的访问,有三种方式:  访问控制 意义 public  可以被任何实 ...
凌川__
搜索本博客
最近加入圈子
存档
最新评论
评论排行榜