Range对象表现为一个间隔,有开始与结束的值集。Range对象可以由范围操作符s..e及s…e字面值,或者用Range::new构建。由..操作符构建的Range对象包括范围的终点end值,而由…操作符构建的Range对象不包括范围的终点end值。当用于迭代器对象时,Range对象返回序列内的每一个值。
例如:
for i in 1..5
…
end
生成从1到5的Range对象,然后对分别每个值进行迭代操作。
再如:
(-1..-5).to_a #=> [](-5..-1).to_a #=> [-5, -4, - ...
J2EE app 一般都有用到 xDoclet 做一些宣告然後再產生程式碼. Java 1.5 開始支援 Annotation 功能來解決這方面需要. 其實 Ruby 拜本身就是 dynamic 語言之賜, 它這方面的方法可就高明多了, 這也就是為何 Rails 看起來又像是 metaprogramming 的原因.
請參考這篇說明, Metaprogramming Ruby
Ruby 不用 setXXX, getXXX, 而是用稱為 attribute accessor 這種方法.
class Book
def initialize(title)
...
MD5 計算
require 'digest/md5'
puts Digest::MD5.hexdigest("Hello World!")
計算檔案的 MD5, 可以確保檔案未曾被修改
require 'digest/md5'
#method 1
puts Digest::MD5.hexdigest(File.read("o.rb"))
#method 2
class Digest::MD5
def self.open(path)
o = new
File.open(path) { |f|
buf = ""
...
Ruby 的 block 是個不錯的設計. 一個 block 就是一些程式碼, 其 context 為正在動態執行的環境. 有點像是一般稱為 callback 機制, 但 block 方法精巧多了
當你呼叫 method 時, 你可以給它一個 block. 下面 “each” 是 method, do ~ end 中間就是 block, |x|, x 就是傳給 block 的參數.
books = ["Ruby", "Rails"]
books.each do |b|
puts b
end
那麼 method 裡如何執行 block? 利用 “yield”
...
URL重写技术在今天已不是什么新鲜的话题了,在Apache服务器提供了名为mod_rewrite的URL重写模块,而在IIS服务器上,也有很多商业的ISAPI 筛选器模块可供使用。然而这对于我们,没有很多的资金或使用的共享服务器,使得以上的方法都不是最佳的解决方案。幸而ASP.NET给我们提供了强大的可扩展性,能让我们自己定义页面的访问规则,很方便实现URL重写。 在ASP.NET中实现URL重写,需要创建HTTP模块(HttpModule)或HTTP处理程序(HttpHandler),通过调用HttpContext的RewritePath方法来近进行URL重写。本篇文章使用的是HT ...
- 浏览: 1201 次

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
在ASP.NET 2.0中实现URL ...
不知道这样的方式和ISAPI的插件模式,在效率上有什么差别。
-- by 风中独火 -
在ASP.NET 2.0中实现URL ...
<system.web> <urlMappings enabl ...
-- by hunter001201 -
向页面传值接收不到
没人知道吗`````````````````````问题已经解决`````
-- by litoueva






评论排行榜