ruby 中华万年历3.2.33 块和地址的区别

加载中,请稍候...
加载中,请稍候...
京 东 价:
¥43.20 [7.4折]
[定价:¥59.00
温馨提示:
其它类似商品
正在加载中,请稍候...
正在加载中,请稍候...
正在加载中,请稍候...
Ruby从入门到精通
¥43.20 [7.4折]
查找同类商品
《Ruby从入门到精通》还讲解了Ruby关键内容(如类、对象、项目、模板和程序库)以及Ruby的其他方面(如数据库访问)。另外,《Ruby从入门到精通》深入介绍了Ruby
Rails。《Ruby从入门到精通》附录也提供了重要的参考信息,为经验丰富的程序员提供了Ruby快速入门。
附录部分请到华章网站(WWW.hzbook,com)下载。作为极其流行的Ruby
Web开发框架的底层引擎,Ruby已经广为人知,而它本身是一种极其强大的全能型编程语言。Ruby关注的焦点是减轻开发的负担,以及提供完全的面向对象环境。
《Ruby从入门到精通》是一本彻底而全面的最新指南,适合于各类Ruby读者,不管是编程初学者、Web开发人员,还是Ruby新手。《Ruby从入门到精通》从解说面向对象编程背后的原理开始,只通过几章的讲解,就构造出了真正的Ruby应用程序。
是经验丰富的Ruby开发者和培训师,还是最流行的Ruby新闻博客“Ruby内幕”(http://www.rubyinside
com/)的编辑。在2007年以前,他主要做Ruby培训和开发.现在是FeedDige
st网站(httP://WWW.feeddigest.com/)的全职开发者和所有者。
译者序序言前言致谢第一篇
基础与脚手架第1章
让它跑起来:安装Ruby1.1
安装Ruby1.1.1
Windows平台1.1.2.AppleMacOSX平台1.1.3
Linux平台1.1.4
其他平台1.2
编程等于快乐:Ruby和面向对象概览2.1
初始步骤2.1.1
irb:交互式Ruby2.1.2
Ruby是计算机的通用语._2.1.3
为什么Ruby是如此杰出的编程语言2.1.4
心灵小径2.2
把思路转变成Ruby代码2.2.1
Ruby怎么理解对象和类的概念2.2.2
造人过程2.2.3
基础变量2.2.4
从人到宠物2.3
一切都是对象2.3.1
Kernel模块的方法2.3.2
向方法传递数据2.3.3
使用String类的方法2.4
以非面向对象方式使用Ruby2.5
Ruby的构造元素:数据、表达式和流程控制3.1
数字与表达式3.1.1
表达式基础知识3.1.2
比较运算符与表达式3.1.4
用块和迭代子在数字中循环3.1.5
浮点数3.1.6
文本与字符串3.2.1
字面字符串3.2.2
字符串表达式3.2.3
字符串方法3.2.5
正则表达式与字符串操作3.3
数组与列表3.3.1
基本数组3.3.2
字符串切分成数组3.3.3
数组迭代3.3.4
数组的其他方法3.4
散列表3.4.1
散列表的基础方法3.4.2
散列表中的散列表3.5
流程控制3.5.1
if与unless3.5.2
三元运算符3.5.3
elsif与case3.5.4
while与until3.5.5
其他有用的构造元素3.6.1
日期与时间3.6.2
大数字3.6.3
类间转换3.7
开发基础的Ruby应用程序4.1
处理源代码文件4.1.1
创建测试文件4.1.2
测试用源代码文件4.1
_3运行源代码4.2
我们的目标程序:文本分析器4.2.1
基本功能需求4.2.2
构建程序基本框架4.2.3
获取哑文本4.2.4
载入文本文件并统计行数4.2.5
统计字符数4.2.6
统计字数4.2.7
统计句子和段落数4.2.8
计算平均值4.2.9
到目前为止的源代码4.3
增加额外功能4.3.1
“有用”字词的百分比4.3.2
找出“有趣的”句子进行汇总4.3.3
分析text.txt之外的其他文件4.4
完整的程序4.5
Ruby生态系统5.1
Ruby的历史5.1.1
Ruby的起源5.1.2
Ruby的影响5.1.3
向西方流传5.2
RubyOnRails5.2.1
Rails面世的由来5.2.2
Web(2.0)是怎样赢的5.3
开源文化5.4
如何获得帮助5.4.1
邮件列表5.4.2
Usenet新闻组5.4.3
因特网中继聊天工具5.4.4
加入社区5.5.1
向别人提供帮助5.5.2
贡献代码5.5.3
网络博客5.6
小结第二篇
Ruby的核心第6章
类、对象和模块6.1
为什么要用面向对象6.2
面向对象基础知识6.2.1
局部变量、全局变量、对象变量和类变量6.2.2
类方法和对象方法6.2.3
覆写现有方法6.2.5
对象方法的反射与发现6.2.6
嵌套类6.2.9
常量的作用域6.3
模块、命名空间和掺入6.3.1
命名空间6.3.2
用对象构建“地下城”文本冒险游戏6.4.1
地下城的概念6.4.2
创建初始类6.4.3
Structs:快捷简单的数据类6.4.4
创建房间6.4.5
让地下城运转起来6.5
项目与程序库7.1
项目和使用其他文件的代码7.1.1
基本的文件包含7.1.2
从其他目录包含7.1.3
有条件地包含代码7.1.4
嵌套包含7.2
程序库7.2.1
标准程序库7.2.2
RubyGems包7.3
文档编写、错误处理、调试和测试8.1
文档编写8.1.1
用RDoe生成文档8.1.2
RDoc技术8.2
调试与出错8.2.1
异常和出错处理8.2.2
Catch与Throw方法8.2.3
Ruby调试器8.3
测试驱动开发的哲学8.3.2
单元测试8.3.3
更多的Test:Unit断言8.4
性能基准度量和优化分析8.4.1
性能基准简单度量8.4.2
性能优化分析8.5
文件和数据库9.1
输入与输出9.1.1
键盘输入9.1.2
文件输入输出9.2
数据库基础9.2.1
文本文件数据库9.2.2
对象和数据结构的存储9.3
关系型数据库与SQL9.3.1
关系型数据库概念9.3.2
四大数据库:MySQL、PostgreSQL、Oracle和SQLite9.3.3
安装SQLite9.3.4
关于数据库基本操作和SQL的紧急教程9.3.5
在Ruby中使用SQt。ite9.3.6
连接其他数据库系统9.3.7
ActiveRecord简介9.4
小结第10章
部署Ruby应用和程序库10.1
简单Ruby程序发布10.1.1
shebang行10.1.2
关联Windows的文件类型10.1.3
“编译”Ruby程序10.2
检测Ruby运行环境10.2.1
用RUBY-PLATFORM作简单的操作系统检测10.2.2
环境变量10.2.3
读取命令行参数10.3
以gem包形式发布Ruby程序库10.3.1
创建gem包10.3.2
发布gem包10.3.3
RubyForge网站10.4
以远程服务形式部署Ruby应用10.4.1
CGI脚本10.4.2
常见HTTP服务器10.4.3
远程方法调用10.5
小结第11章
Ruby高级功能11.1
动态代码执行11.1.1
绑定11.1.2
eval的其他形式11.1.3
创建attr-accessor11.2
从Ruby中运行其他程序11.2.1
获得其他程序的运行结果11.2.2
向其他程序移交执行权11.2.3
同时运行两个程序11.2.4
与另一程序交互11.3
安全地掌控数据和危险方法11.3.1
被感染的数据和对象ll.3.2
安全级别11.4
使用微软Windows11.4.1
使用Windows.API11.4.2
控制Windows程序11.5
线程11.5.1
基础Ruby线程实战11.5.2
高级线程操作11.6
其他语言嵌入Ruby11.6.1
为什么用c作为嵌入语言11.6.2
创建基础方法或函数11.6.3
性能基准度量:C和Ruby11.7
对Unicodc和UTF-8的支持11.8
小结第12章
综合演练:开发更大型的Ruby应用12.1
构建机器人小程序12.1.1
什么是机器人小程序12.1.2
为什么要构建机器人小程序12.1.3
怎样构建12.2
创建文本处理工具程序库12.2.1
构建WordPlay程序库12.2.2
测试该程序库12.2.3
WordPlay程序库的源代码12.3
构建机器人小程序的核心功能12.3.1
程序的生命周期和组成部分12.3.2
机器人小程序的数据12.3.3
构建Bot类和数据载入器12.3.4
response_to方法12.3.5
试用机器人小程序12.4
机器人小程序主要代码清单12.4.1
bot.rb文件12.4.2
basic-client.rb文件12.5
扩展机器人小程序的功能12.5.1
用文本文件作为会话来源12.5.2
把机器人小程序连接到万维网12.5.3
机器人小程序之间的会话12.6
小结第三篇
Ruby在线第13章
RubyonRuby:Ruby的杀手级应用第14章
Ruby与因特网第15章
网络连接、套接字与后台进程第16章
有用的Ruby程序库和gem包
我想最大程度地减少编程的难度,因此想最大程度地减少编程的劳动。这就是我设计Ruby的主要目标。我想让自己快乐地编程。
――松本行弘(Matz),Ruby之父
Ruby是“最好的那类”语言,它汇集了前辈语言最好和最强大的编程特点。
――JimWhiteRubyik我微笑。
――AmyHoy(slash7,com)
Ruby是一个有趣的玩具,也是一门严肃的编程语言。Ruby是逗孩子们开心的乐呵呵大叔,但它也扎扎实实地每天花12小时泡在工地上。对千百万程序员来说,Ruby已经是个好朋友,是个值得依赖的服务员,而且它揭示了编程和软件开发的一种新思路。
就像吉他一样,Ruby这门语言常常得到“简单易学但很难精通”的评价。在一定前提下,我同意这种说法。如果你还不懂任何编程语言,Ruby就会令人惊讶地简单易学。如果你已经了解某些语言,例如PHP、Perl、BASIC、C或Pascal,就会很熟悉Ruby的某些概念,但Ruby对于解决问题所持的不同视角,可能会让你一时迷惑不已。如同人们交谈所用的各种语言的区别一样,Ruby与大多数其他编程语言的区别,不仅在于句法,更在于文化、语法和惯例。事实上,Ruby更接近于小众语言(如LISP和Smalltalk),而不是为人熟知的语言(如PHP和C++)。
虽然Ruby的根源可能与其他语言不同,但它在许多行业得到了广泛的应用和重视。以这样那样的方法使用或支持Ruby的公司中,有许多公司的名字如雷贯耳,例如sun公司、英特尔公司、微软公司、苹果公司和亚马逊网站。Web框架RubyonRails是一套用来开发wleb应用程序的系统,它以Ruby作为基础语言,目前已是成百上千个大型网站的支柱。Ruby还作为命令行方式的通用语言使用,在这方面更像Perl。语言学家、生化学家、数据库管理员以及千百类其他专业人士和业余人士,都用Ruby简化自己的工作。Ruby真正的国际化语言,有几乎无限的应用。
正在加载中,请稍候...
正在加载中,请稍候...
正在加载中,请稍候...
正在加载中,请稍候...
正在加载中,请稍候...
正在加载中,请稍候...
正在加载中,请稍候...
七日畅销榜
新书热卖榜PHP和Python/Ruby运行机制的本质区别
PHP和Python/Ruby的运行机制有一个本质区别:PHP是每次HTTP请求过来以后,初始化全部资源(例如创建数据库链接、加载系统类库,创建缓存等等),处理完毕,释放全部资源,这不像Python/Ruby之类带有GC的脚本语言,Python/Ruby是初次启动的时候初始化资源,随
   
PHP和Python/Ruby的运行机制有一个本质区别:PHP是每次HTTP请求过来以后,初始化全部资源(例如创建数据库链接、加载系统类库,创建缓存等等),处理完毕,释放全部资源,这不像Python/Ruby之类带有GC的脚本语言,Python/Ruby是初次启动的时候初始化资源,随后的请求就不必再次初始化资源了。
这种机制的差异带来的区别就是:
1、PHP极难出现严重的内存泄露问题,随便你代码写的多烂,反正每个请求一执行完毕,所有资源统统释放光。而Python/Ruby则需要依赖GC来回收内存,因此稍有不慎,还是会出现GC无法释放的内存泄露问题。
2、PHP每次请求都要初始化资源,这个开销非常大。所以尽管PHP解析器本身的运行速度是极快的,但是一旦使用复杂的PHP框架,那么由于需要每次请求的时候初始化整个框架,性能的下降非常厉害,你用一个很复杂的PHP框架的结果就是整体性能被Ruby远远甩开。这也是为什么PHP社区这么多年来,并不怎么倾向于使用框架的原因之一。
3、由于PHP这种每请求初始化资源的机制,也造成了PHP添加跨请求的高级特性相当困难,这是PHP本身一个很大的限制,但是反过来说,正是这种限制使得PHP始终保持在一个比较简单的web语言上面,而正是这一点才是PHP得以成为互联网第一Web编程语言的原因,因此也未必就不好。
总之,PHP和Ruby的差异还是很大的,不适合放在一起比较,其实应该比较的是Ruby和Python才对。
所以我觉得Rails这种框架性做法被PHP跟风以后,其实是把PHP带上了邪路,所以不如说是Rails在误导PHP的发展。顺便多说一句:DHH在编写basecamp之前,一直是用PHP的,并且自己还写了一个PHP的快速开发框架,他改用ruby以后,把当初自己写的PHP框架也移植过来了,这个框架实际上是Rails最初的原型。那么为什么DHH当初不直接基于PHP做Rails呢?非要改用ruby以后,才发表rails呢?你看看PHP这种运行机制就知道了,PHP做复杂的web开发框架并不是一条光明的道路。
(责任编辑:robbin)
本文关键字:
广告赞助商
最新视频推荐
Copyright (C) 2007-, All Rights Reserved 版权所有 . 沪ICP备号
地址:上海徐汇区零陵路585号 爱邦大厦26H座
传真(FAX):021-
电话(Tel):021-
PHP100 Website Powered by PHPCMS. For PHP100. 服务器维护:阿里巴巴-阿里云ruby中实例变量、类变量等等的区别和联系 - 推酷
ruby中实例变量、类变量等等的区别和联系
已收藏到推刊!
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
ruby的变量有局部变量,全局变量,实例变量,类变量,常量。
1、局部变量
局部变量以一个小写字母开头或下划线开头
局部变量有局部作用域限制(比如一个block内),它的作用域起始于声明处,结束于该声明所在的块、方法定义、类/模块定义的结尾。大家在写代码时经常这样写:
irb(main):001:0& i=123&&&&---------- 这里的i就是局部变量
irb(main):002:0& s=&hi&&&&---------- 这里的s就是局部变量
=&&hi&ruby的变量是动态变量,某个变量在前一刻是数字型,在后一刻可以是字符型:
irb(main):003:0& x=321
irb(main):004:0& x=&hello&
ruby是动态变量,但却是强类型,例如字符和数字不能直接相加:
irb(main):005:0& x=10
irb(main):006:0& y=&hi&
irb(main):007:0& x+y
TypeError: String can't be coerced into Fixnum
from(irb):7:in '+'
from(irb):7from : 0
必须手工进行转换: irb(main):008:0&&&x.to_s + y
2、全局变量
ruby的全局变量以$开头
,例如:&&$x&&&$y。全局变量可以在程序的任何地方加以引用。全局变量无需变量声明。引用尚未初始化的全局变量时,其值为
ruby有内置的全局变量,应该是从perl哪里抄来的,例如 $!记录最近一次产生的错误,$. 表示行号等。良好的编程实际,是不使用全局变量,他们危险而难以跟踪。
3、实例变量
ruby的实例变量以@开头,是指实例化后的对象,才绑定的变量。实例变量属于特定的对象。例如:
irb(main):016:0& class Myclass
irb(main):017:0&&&&def initialize(name,gender,age)
irb(main):018:0&&&&&&&@name=name
irb(main):019:0&&&&&&&@gender=gender
irb(main):020:2&&&&&&&@age=age
irb(main):021:0&&&&end
irb(main):022:0& end
=& nil&&&&---------------
@age都是实例变量。可以在类或子类的方法中引用实例变量。若引用尚未被初始化的实例变量的话,其值为
irb(main):023:0& x=Myclass.new(&john&)
=& #&Myclass:0x7f2e15a7dad8 @name=&john&&
Myclass类,他的构造器接收一个name参数,然后把该参数赋值给实例变量@name。
x是Myclass的实例,她拥有实例变量@name。
只有在类被实例化时,实例变量才产生和存在。但是,实例对象并不能直接访问实例变量:
irb(main):022:0& x.@name
SyntaxError: compile error
(irb):22: syntax error, unexpected tIVAR
from (irb):22
这样是错误的。必须在;类里面,定义get方法,来访问实例变量:
irb(main):023:0& class Myclass
irb(main):024:1&&&&def name
irb(main):025:2&&&&&&@name
irb(main):026:2&&&&end
irb(main):027:1& end
irb(main):028:0& x.name
当然,也可以定义set方法,来设置实例变量:
irb(main):029:0& class Myclass
irb(main):030:1&&&&def name=(value)
irb(main):031:2&&&&&&@name=value
irb(main):032:2&&&&end
irb(main):033:1& end
irb(main):034:0& x.name=&jean&
irb(main):035:0& x.name
这个set和get,可以通过ruby的元编程来实现,例如:
irb(main):036:0& class Myclass
irb(main):037:1&&&&attr_accessor :age
irb(main):038:1& end
irb(main):039:0& x.age=20
irb(main):040:0& x.age
只要设置attr_accessor就够了,他会对@age这个实例变量,创建set和get方法。
irb(main):041:0& x=& #&Myclass:0x7f2e15a7dad8 @name=&jean&, @age=20&
对应的还有attr_reader只设置get方法,attr_writer只设置set方法。
ruby的类变量以@@开头,例如在类里申明的@@x @@y 等,一般很少使用。
类变量在类的定义中定义,可以在类的特殊方法、实例方法等处对类变量进行赋值和引用。类变量被类,类的子类和他们的实例对象共享。
class Person
@@number = 0 #使用前必须有初值
def initialize(name, gender, age)
@age = age
@@number += 1
类变量是私有的,在类外无法直接访问,你只能通过实例方法和类方法去访问它。可以把类变量看作一种被类、子类以及它们的实例所共享的全局变量。
模块中定义的类变量(模块变量)被所有包含该模块的类所共享。
module TestModule
@@foo = 10
class Klass
include Foo
p @@foo += 1&&&&&&&&&&# =& 11
class Base
include Foo
p @@foo += 2&&&&&&&&&&# =& 12
ruby的常量以大写字母开头,常数的定义和初始化由赋值过程完成。
irb(main):048:0&Pi=3.14&&&&&&&&&&&&----------Pi就是一个常量
然而,ruby的常量是可以改变的。若对已定义的常数进行赋值的话,会出现警告信息:
irb(main):049:0& Pi=3.15
(irb):49: warning: already initialized constant Pi
irb(main):050:0& Pi
尽管触发警告,但常量的确被改变了。
注意:1)若引用未定义的常数会引发
NameError异常。
2)常量可以定义在类和模块中,不能定义在方法中
通常在类里设置常量:
irb(main):051:0& class Myclass
irb(main):052:1&&&&Pi=3.1415
irb(main):053:1& end
3)若想在外部访问类或模块中的常数时,要使用“::”操作符.
从类的外部访问这个常量:irb(main):055:0&Myclass::Pi
模块也一样,例如访问ruby内置的Math模块的PI常量:&irb(main):056:0&Math::PI
4)在类定义表达式生成类对象的同时,还会将类对象赋值给一个与该类同名的常数,引用类名也就是引用该常数。
class Test
p Test.class&&&&&&&&&#Class
p Test&&&&&&&&&&&&&&&#test
若想访问Object类中的常数(顶层的常数)时,也需要也使用&::&操作符,但操作符左边为空。
已发表评论数()
&&登&&&陆&&

我要回帖

更多关于 中华万年历3.2.3 的文章

 

随机推荐