Terry七月Ruby读书笔记(比较详细)
Page 3 概述¨解释执行:Python,Ruby,交互性很好;¨编译执行:Pascal, C,速度较快。n本地执行,如C,C++;n虚拟机执行,如Java, C#。 ¨动态语言,如JavaScript,Ruby;¨静态语言,如C++,Java。 语言¨语法关键字¨语义¨语用 松本行弘(Matz)
Page 3 概述¨解释执行:Python,Ruby,交互性很好;¨编译执行:Pascal, C,速度较快。n本地执行,如C,C++;n虚拟机执行,如Java, C#。 ¨动态语言,如JavaScript,Ruby;¨静态语言,如C++,Java。 语言¨语法关键字¨语义¨语用 松本行弘(Matz)
演示代码: [code]#!/usr/bin/env ruby COUNT = 10 require 'benchmark' $account_chars = ('A'..'Z').to_a.delete_if {|c| c =~ /[AEIOUY]/ } #$password_chars = ('
self在区分全局变量/函数和对象中的成员变量/函数十分有用。例如,它提供了一种作用域机制,我个人认为比Ruby的@和@@清晰多了,这可能是习惯使然吧,但它确实和C++、Java中的this很相似。 然而,self总是有令我困扰的地方,我以前在这里说过—我曾幻想能在Python3中这些能得以改进,然
现在我们将前面的一些示例程序的代码坼开来分析一下. 下面的例子出现在简单的例子一节. def fact(n)if n == 01elsen * fact(n-1)end end print fact(ARGV[0].to_i), "\n"因为是第一次解释,我们将逐行分析. def fact(n)第一
这章我们将讨论更多的Ruby流程控制. case 我们用case语句测试有次序的条件.正如我们所见的,这和C,Java的switch相当接近,但更强大. ruby> i=8 ruby> case i| when 1, 2..5|print "1..5\n"| when 6..10|pri
我们再看一个更有趣的程序.这次我们来测试一个字符串是否和一个由简明模式(concise pattern)编码产生的描述相匹配. 在这些模式(pattern)里,一些字符或字符组合都有独特的意义,包括:实现代码如下:[]范围描述符 (比如,[a - z] 表示在a 到 z 范围内的一个字母)\w字母或
1.print不自动换行,puts会自动换行,一行不够写的话,可以加"\"进行连接 ruby 代码 puts 6/2print 6/1puts 'hello world'puts '我们都是'\'中国人'运行结果: ruby 代码 36hello world我们都是中国人 2.==,eql?,equ
Java类语言:Java似乎会逐渐走下坡。J2ME会受到Google Android、Adobe Flash Lite、.NET Compact Framework的影响;J2SE的对手则是.NET和AIR;J2EE在中小型网站受到PHP、Ruby-on-Rails(RoR)很大的冲击。幸好,目前大
迭代器并不是Ruby发明的.它广泛地运用于各种面向对象语言.在Lisp中也有,只是不这么叫罢了.尽管如此,迭代器的概念并不为许多人熟悉,因此我们将在此做较为详细的介绍. 你知道,动词 iterate 的意思是做同一件事许多遍,因此,iterator就是用来将同一件事做许多次的东西. 当我们写代码时,
面向对象是一个挺让人迷惑的措辞.叫一切东西都是面向对象会让别人觉得你很时髦. Ruby 声称自己是面向对象的脚本语言;但究竟什么才是"面向对象"? 我们已经有了各种各样的答案,但所有这些恐怕都归结于同一件事.与其快速地概括它,不如让我们先花点儿时间考虑一下传统的编程模式.传统意义上,一个编程问题从出