- 浏览: 2075750 次
- 性别:
- 来自: NYC
文章分类
- 全部博客 (628)
- Linux (53)
- RubyOnRails (294)
- HTML (8)
- 手册指南 (5)
- Mysql (14)
- PHP (3)
- Rails 汇总 (13)
- 读书 (22)
- plugin 插件介绍与应用 (12)
- Flex (2)
- Ruby技巧 (7)
- Gem包介绍 (1)
- javascript Jquery ext prototype (21)
- IT生活 (6)
- 小工具 (4)
- PHP 部署 drupal (1)
- javascript Jquery sort plugin 插件 (2)
- iphone siri ios (1)
- Ruby On Rails (106)
- 编程概念 (1)
- Unit Test (4)
- Ruby 1.9 (24)
- rake (1)
- Postgresql (6)
- ruby (5)
- respond_to? (1)
- method_missing (1)
- git (8)
- Rspec (1)
- ios (1)
- jquery (1)
- Sinatra (1)
最新评论
-
dadadada2x:
user模型里加上 protected def email ...
流行的权限管理 gem devise的定制 -
Sev7en_jun:
shrekting 写道var pattern = /^(0| ...
强悍的ip格式 正则表达式验证 -
jiasanshou:
好文章!!!
RPM包rpmbuild SPEC文件深度说明 -
寻得乐中乐:
link_to其实就是个a标签,使用css控制,添加一个参数: ...
Rails在link_to中加参数 -
aiafei0001:
完全看不懂,不知所然.能表达清楚一点?
"$ is not defined" 的问题怎么办
在哈希表的描述上ruby 1.9.1,有很很大的改变,下面是一些值得关注的部分:
RUBY_VERSION => 1.8.6
RUBY_VERSION => 1.9.1
新的Hash加强了对序列处理
RUBY_VERSION => 1.8.6
RUBY_VERSION => 1.9.1
有点像hash.inspect,更好的to_s方法
RUBY_VERSION => 1.8.6
RUBY_VERSION => 1.9.1
hash.each 和 hash.each_pair 的表达
RUBY_VERSION => 1.8.6
RUBY_VERSION => 1.9.1
hash.select现在会返回hash而不是array
RUBY_VERSION => 1.8.6
RUBY_VERSION => 1.9.1
我觉得 Hash 最有意义的改进就是内容有序化了。
RUBY_VERSION => 1.8.6
>> {'name', "Akhil"} => {"name"=>"Akhil"} >> {'name', "Akhil"} => {"name"=>"Akhil"}
RUBY_VERSION => 1.9.1
>> {'name', "Akhil"} => syntax error, unexpected ',', expecting tASSOC >> {name: "Akhil"} => {:name=>"Akhil"} >> {'name', "Akhil"} => syntax error, unexpected ',', expecting tASSOC >> {name: "Akhil"} => {:name=>"Akhil"}
新的Hash加强了对序列处理
RUBY_VERSION => 1.8.6
>> hash = {:a=> 'A', :b=>'B', :c=>'C', :d=>'D'} => {:b=>"B", :c=>"C", :d=>"D", :a=>"A"} >> hash.to_a => [[:b, "B"], [:c, "C"], [:d, "D"], [:a, "A"]] >> hash.keys => [:b, :c, :d, :a] >> hash.values => ["B", "C", "D", "A"] >> hash = {:a=> 'A', :b=>'B', :c=>'C', :d=>'D'} => {:b=>"B", :c=>"C", :d=>"D", :a=>"A"} >> hash.to_a => [[:b, "B"], [:c, "C"], [:d, "D"], [:a, "A"]] >> hash.keys => [:b, :c, :d, :a] >> hash.values => ["B", "C", "D", "A"]
RUBY_VERSION => 1.9.1
>> hash = {:a=> 'A', :b=>'B', :c=>'C', :d=>'D'} => {:a=>"A", :b=>"B", :c=>"C", :d=>"D"} >> hash.to_a => [[:a, "A"], [:b, "B"], [:c, "C"], [:d, "D"]] >> hash.keys => [:a, :b, :c, :d] >> hash.values => ["A", "B", "C", "D"] >> hash = {:a=> 'A', :b=>'B', :c=>'C', :d=>'D'} => {:a=>"A", :b=>"B", :c=>"C", :d=>"D"} >> hash.to_a => [[:a, "A"], [:b, "B"], [:c, "C"], [:d, "D"]] >> hash.keys => [:a, :b, :c, :d] >> hash.values => ["A", "B", "C", "D"]
有点像hash.inspect,更好的to_s方法
RUBY_VERSION => 1.8.6
>> hash = {:a=> 1, :b=>2, :c=>3, :d=>4} => {:b=>2, :c=>3, :d=>4, :a=>1} >> hash.to_s => "b2c3d4a1" >> hash = {:a=> 1, :b=>2, :c=>3, :d=>4} => {:b=>2, :c=>3, :d=>4, :a=>1} >> hash.to_s => "b2c3d4a1"
RUBY_VERSION => 1.9.1
>> hash = {:a=> 1, :b=>2, :c=>3, :d=>4} => {:a=>1, :b=>2, :c=>3, :d=>4} >> hash.to_s => "{:a=>1, :b=>2, :c=>3, :d=>4}" >> hash = {:a=> 1, :b=>2, :c=>3, :d=>4} => {:a=>1, :b=>2, :c=>3, :d=>4} >> hash.to_s => "{:a=>1, :b=>2, :c=>3, :d=>4}"
hash.each 和 hash.each_pair 的表达
RUBY_VERSION => 1.8.6
>> hash = {:a=> 1, :b=>2, :c=>3, :d=>4} => {:b=>2, :c=>3, :d=>4, :a=>1} >> hash.each{|x| p x} [:b, 2] [:c, 3] [:d, 4] [:a, 1] => {:b=>2, :c=>3, :d=>4, :a=>1} >> hash.each_pair{|x| p x} (irb):48: warning: multiple values for a block parameter (2 for 1) from (irb):48 [:b, 2] (irb):48: warning: multiple values for a block parameter (2 for 1) from (irb):48 [:c, 3] (irb):48: warning: multiple values for a block parameter (2 for 1) from (irb):48 [:d, 4] (irb):48: warning: multiple values for a block parameter (2 for 1) from (irb):48 [:a, 1] => {:b=>2, :c=>3, :d=>4, :a=>1} >> hash = {:a=> 1, :b=>2, :c=>3, :d=>4} => {:b=>2, :c=>3, :d=>4, :a=>1} >> hash.each{|x| p x} [:b, 2] [:c, 3] [:d, 4] [:a, 1] => {:b=>2, :c=>3, :d=>4, :a=>1} >> hash.each_pair{|x| p x} (irb):48: warning: multiple values for a block parameter (2 for 1) from (irb):48 [:b, 2] (irb):48: warning: multiple values for a block parameter (2 for 1) from (irb):48 [:c, 3] (irb):48: warning: multiple values for a block parameter (2 for 1) from (irb):48 [:d, 4] (irb):48: warning: multiple values for a block parameter (2 for 1) from (irb):48 [:a, 1] => {:b=>2, :c=>3, :d=>4, :a=>1}
RUBY_VERSION => 1.9.1
>> hash = {:a=> 1, :b=>2, :c=>3, :d=>4} => {:a=>1, :b=>2, :c=>3, :d=>4} >> hash.each{|x| p x} [:a, 1] [:b, 2] [:c, 3] [:d, 4] => {:a=>1, :b=>2, :c=>3, :d=>4} >> hash.each_pair{|x| p x} [:a, 1] [:b, 2] [:c, 3] [:d, 4] => {:a=>1, :b=>2, :c=>3, :d=>4} >> hash = {:a=> 1, :b=>2, :c=>3, :d=>4} => {:a=>1, :b=>2, :c=>3, :d=>4} >> hash.each{|x| p x} [:a, 1] [:b, 2] [:c, 3] [:d, 4] => {:a=>1, :b=>2, :c=>3, :d=>4} >> hash.each_pair{|x| p x} [:a, 1] [:b, 2] [:c, 3] [:d, 4] => {:a=>1, :b=>2, :c=>3, :d=>4}
hash.select现在会返回hash而不是array
RUBY_VERSION => 1.8.6
>> hash = {:a=> 1, :b=>2, :c=>3, :d=>4} => {:b=>2, :c=>3, :d=>4, :a=>1} >> hash.select{|k,v| k == :c } => [[:c, 3]] >> hash = {:a=> 1, :b=>2, :c=>3, :d=>4} => {:b=>2, :c=>3, :d=>4, :a=>1} >> hash.select{|k,v| k == :c } => [[:c, 3]]
RUBY_VERSION => 1.9.1
>> hash = {:a=> 1, :b=>2, :c=>3, :d=>4} => {:a=>1, :b=>2, :c=>3, :d=>4} >> hash.select{|k,v| k == :c } => {:c=>3}
评论
2 楼
rainux
2009-03-25
night_stalker 写道
在1.9,Hash的实现从单链表改成了双向循环链表。
注:st_table不仅是Hash的基础,还是Object的基础。
理论上讲,由于需要改动更多的指针,插入和删除的性能降低了,但是双向指针提供了有序化列表项的能力,而且提升了遍历的性能。
不过一些benchmark表示,连插入和删除都略有提升。
struct st_table_entry { unsigned int hash; st_data_t key; st_data_t record; st_table_entry *next; st_table_entry *fore, *back; //加了这一行 };
注:st_table不仅是Hash的基础,还是Object的基础。
理论上讲,由于需要改动更多的指针,插入和删除的性能降低了,但是双向指针提供了有序化列表项的能力,而且提升了遍历的性能。
不过一些benchmark表示,连插入和删除都略有提升。
我觉得 Hash 最有意义的改进就是内容有序化了。
1 楼
night_stalker
2009-03-25
在1.9,Hash的实现从单链表改成了双向循环链表。
注:st_table不仅是Hash的基础,还是Object的基础。
理论上讲,由于需要改动更多的指针,插入和删除的性能降低了,但是双向指针提供了有序化列表项的能力,而且提升了遍历的性能。
不过一些benchmark表示,连插入和删除都略有提升。
struct st_table_entry { unsigned int hash; st_data_t key; st_data_t record; st_table_entry *next; st_table_entry *fore, *back; //加了这一行 };
注:st_table不仅是Hash的基础,还是Object的基础。
理论上讲,由于需要改动更多的指针,插入和删除的性能降低了,但是双向指针提供了有序化列表项的能力,而且提升了遍历的性能。
不过一些benchmark表示,连插入和删除都略有提升。
发表评论
-
Destroying a Postgres DB on Heroku
2013-04-24 10:58 935heroku pg:reset DATABASE -
VIM ctags setup ack
2012-04-17 22:13 3259reference ctags --extra=+f --e ... -
alias_method_chain方法在3.1以后的替代使用方式
2012-02-04 02:14 3295alias_method_chain() 是rails里的一个 ... -
一些快速解决的问题
2012-01-19 12:35 1472问题如下: 引用Could not open library ... -
API service 安全问题
2011-12-04 08:47 1386这是一个长期关注的课题 rest api Service的 ... -
Module方法调用好不好
2011-11-20 01:58 1349以前说,用module给class加singleton方法,和 ... -
一个ajax和rails交互的例子
2011-11-19 01:53 1908首先,这里用了一个,query信息解析的包,如下 https: ... -
Rails 返回hash给javascript
2011-11-19 01:43 2277这是一个特别的,不太正统的需求, 因为,大部分时候,ajax的 ... -
关于Rubymine
2011-11-18 23:21 2267开个帖子收集有关使用上的问题 前一段时间,看到半价就买了。想 ... -
ruby中和javascript中,动态方法的创建
2011-11-18 21:01 1241class Klass def hello(*args) ... -
textmate快捷键 汇总
2011-11-16 07:20 8147TextMate 列编辑模式 按住 Alt 键,用鼠标选择要 ... -
Ruby面试系列六,面试继续面试
2011-11-15 05:55 2025刚才受到打击了,充分报漏了自己基础不扎实,不肯向虎炮等兄弟学习 ... -
说说sharding
2011-11-13 00:53 1492这个东西一面试就有人 ... -
rails面试碎碎念
2011-11-12 23:51 1946面试继续面试 又有问ru ... -
最通常的git push reject 和non-fast forward是因为
2011-11-12 23:29 17216git push To git@github.com:use ... -
Rails 自身的many to many关系 self has_many
2011-11-12 01:43 2737简单点的 #注意外键在person上people: id ... -
Rails 3下的 in place editor edit in place
2011-11-12 01:20 946第一个版本 http://code.google.com/p ... -
Heroku 的诡异问题集合
2011-11-11 07:22 1697开个Post记录,在用heroku过程中的一些诡异问题和要注意 ... -
SCSS 和 SASS 和 HAML 和CoffeeScript
2011-11-07 07:52 12960Asset Pipeline 提供了内建 ... -
Invalid gemspec because of the date format in specification
2011-11-07 02:14 2122又是这个date format的错误。 上次出错忘了,记录下 ...
相关推荐
Ruby 1.9.1 是 Ruby 语言的一个重要版本,发布于2009年,它带来了许多重要的改进和更新,对于理解这个编程语言的发展历程至关重要。本压缩包包含的资源是关于 Ruby 1.9.1 的文档和一本 PDF 文件,可能是对该版本的...
ruby 1.9.1 的下载地址是:ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p0.tar.gz (windows上在http://www.ruby-lang.org/en/downloads/ 下载二进制的文件)另外,目前Rails 2.2还无法在ruby 1.9.1上面正常...
因此,这个特别的源码包是针对Ruby 1.9.1进行过适配和修改的,确保在该版本下能够顺利安装和运行。 在源码包`ruby-fcgi-0.8.7`中,你可以期待找到以下关键文件和目录: 1. `ext/`: 这个目录包含了Ruby-FCGI的C语言...
线程是程序执行的并行单元,Ruby 1.9.1中引入了改进的线程模型,因此这个测试可能验证了Ruby解释器对多线程的支持和性能。 总的来说,这个主题提供了关于如何在Windows平台上利用Visual Studio这样的专业开发工具...
6. doc:文档目录,可能包含Ruby 1.9.1的官方文档、API参考或者其他帮助文件,对于学习和开发非常有帮助。 7. lib:库目录,存储了Ruby标准库和其他库文件,这些文件提供了各种内置模块和类,使得开发者可以利用...
Ruby 1.9.1中已经内置了JSON支持,能够方便地进行JSON数据的编码和解码。 5. 配置脚本和安装向导:指导用户完成安装过程,并根据用户的系统配置进行适当的设置。 6. 文档:包括API参考、教程和示例代码,帮助用户...
Ruby 1.9.1 和 Gem 1.3.5 是 Ruby 编程语言的关键版本,它们在软件开发中扮演着重要角色。Ruby 1.9.1 是 Ruby 的一个稳定分支,它引入了许多改进和新特性,提升了性能并增强了语言的规范性。 Ruby 1.9.1 的主要更新...
mingw32-ruby-1.9.1-wxruby-2.0.1-setup.exe
这个zip包通常包含了Ruby解释器以及必要的库文件,例如`libeay32.dll`、`ssleay32.dll`、`libssl32.dll`、`readline5.dll`和`zlib.dll`。这些库文件在Ruby运行时扮演着至关重要的角色: 1. `libeay32.dll` 和 `...
### Ruby的手动编译安装与升级方法 #### 引言 Ruby是一种动态、面向对象的脚本语言...通过上述步骤,不仅能够实现Ruby的定制化安装与升级,还能够利用RubyGems方便地管理Ruby扩展包,极大地提升了开发效率和灵活性。
安装 1.9.1 和 1.8.6 mingw ruby 版本(上面的说明) 类型(在 Linux/OSX 上构建胖 Win32 二进制文件): rake cross native gem RUBY_CC_VERSION=1.8.6:1.9.1 将新宝石上传到 rubyforge 和 gemcutter。 ...
The Windows platform has several options for installing Ruby. The first option is simply installing the compiled binaries. The second option is to use the one-click installer. If you’re unsure about ...
Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统,完全支持C、C++、Java、Objective-C和IDL语言,部分支持PHP、C#。注释的语法与Qt-Doc、KDoc和JavaDoc兼容。Doxygen可以从一套归档源文件开始,生成...
2. min.js文件(通常命名为jquery-1.9.1.min.js)是经过压缩和优化后的版本,通过删除不必要的空格、换行和注释,以及合并变量等方式减小文件大小,从而加快页面加载速度。在生产环境中,应优先考虑使用min.js,以...
同时,1.9.1版本引入了一些新的API和改进,如`.on()`和`.off()`方法,它们替代了之前的事件绑定和解绑方法,增强了事件处理的灵活性。 此外,jQuery 1.9.1在性能上也有所提升,优化了DOM操作和事件处理的效率。例如...
`jquery-1.9.1.js`是未压缩的源代码版本,便于开发者阅读、调试和学习,而`jquery-1.9.1.min.js`是经过压缩和优化后的版本,体积更小,适用于生产环境,以提高页面加载速度。 jQuery 1.9.1版本是一个重要的里程碑,...
Ruby是一种面向对象的脚本语言,它以其简洁、优雅的语法和强大的编程能力而闻名。在Windows环境下设置和使用Ruby工具对于开发者来说是一项基础任务。本文将深入探讨Ruby在Windows平台上的安装、配置以及基本使用。 ...
1.chmod + x pcl.sh#增加可执行权限 2../pcl.sh#安装在/usr/local/pcl/pcl-1.9.1 3.sudo gedit .bashrc 4.添加export PCL_DIR=/usr/local/pcl/pcl-1.9.1
目前无漏洞版本shiro1.9.1源码+jar