计算的本质[试读]
1.1 交互式Ruby Shell
本书中的代码全部使用Ruby 写成。Ruby 是一种简单、友好而且有趣的编程语言。因为Ruby 清晰与灵活,我选择了它,但本书并不依赖于Ruby 专有的特性,所以这些示例代码均可转换成你喜欢的其他任何语言,特别是像Python 或者JavaScript 这样的动态语言,如果那样你更容易理解的话。 所有的示例代码都兼容Ruby 2.0 和Ruby 1.9。你可以在Ruby 官方站点(http://www.rubylang.org/)详细了解Ruby,还可以下载一份官方的实现。 我们会快速浏览一下Ruby 的特性,并集中介绍本书中用到的部分。如果你想学习更多内容,推荐从O’Reilly 的《R... 查看全部[ 1.1 交互式Ruby Shell ]
1.2 值
Ruby 是一种面向表达式的语言:每一段有效的代码执行之后都要产生一个值。下面快速浏览一下 Ruby 中不同类型的值。 1.2.1 基本数据 如我们所料,Ruby 支持布尔型(Boolean)、数值型(number)和字符串(string),且它们都支持常规运算: >> (true && false) || true => true >> (3 + 3) * (14 / 2) => 42 >> 'hello' + ' world' => "hello world" >> 'h... 查看全部[ 1.2 值 ]
1.3 控制流
Ruby 有 if、case 和 while 表达式,它们都以通常的方式工作: >> if 2 < 3 'less' else 'more' end => "less" >> quantify = -> number { case number when 1 'one' when 2 'a couple' else 'many' end } => #<Proc (lambda)> >> quantify.call(2) => "a couple&q... 查看全部[ 1.3 控制流 ]
1.4 对象和方法
Ruby 看起来和其他动态编程语言很像,但有一个重要的区别:每个值都是一个对象,而且对象彼此之间靠发送消息进行通信 1。每个对象都有自己的方法集合,这些方法决定了它如何响应特定的消息。 一个消息有一个名字,并且根据需要可以有一些参数。一个对象收到一个消息的时候,它对应的方法就会使用消息中的参数作为自己的参数执行。这就是 Ruby 完成全部工作的方式;甚至“1+2”都意味着“使用参数 2 给对象 1 发送一个叫作 + 的消息”,而对象 1 有一个处理那个消息的方法 #+。 我们可以使用关键字 def 定义自己的方法: >> o = Object.new => #<... 查看全部[ 1.4 对象和方法 ]
1.5 类和模块
能在许多对象之间共享方法定义是件很便利的事。在 Ruby 中我们可以把方法定义放到一个类里,然后通过给那个类发送 new 消息来新建对象。所获得的对象是包括方法在内的这个类的实例。例如: >> class Calculator def divide(x, y) x / y end end => nil >> c = Calculator.new => #<Calculator> >> c.class => Calculator >> c.divide(10, 2) => 5 注意,在一... 查看全部[ 1.5 类和模块 ]
1.6 其他特性
下面是本书中示例代码会用到的其他特性。 1.6.1 局部变量和赋值 就像我们已经看到的那样,Ruby 仅允许通过赋值声明局部变量: >> greeting = 'hello' => "hello" >> greeting => "hello" 我们还可以通过数组一次给多个变量并行赋值: >> width, height, depth = [1000, 2250, 250] => [1000, 2250, 250] >> height => 2250 1.6.2... 查看全部[ 1.6 其他特性 ]
书名: 计算的本质
作者: [英] Tom Stuart
出版社: 人民邮电出版社
原作名: Understanding Computation: From Simple Machines to Impossible Programs
副标题: 深入剖析程序和计算机
译者: 张伟
出版年: 2014-11
页数: 300
定价: 69.00元
装帧: 平装
ISBN: 9787115361547