日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

解析.NET程序員 Ruby核心語法入門(4)_.Net教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:關(guān)于URL的傳遞字符串問題的研究
前幾天在調(diào)程序的時候遇到了比較郁悶的問題,我用URL從一個頁面?zhèn)鬟f字符串到另一個頁面的時,出現(xiàn)了個奇怪的問題,我要傳遞的字符串是“DK51 700中繼站”;可是另一個頁面接收到

Ruby中的所有事物都是對象,所有對象都是類的實例,為了探索類是個什么東西,在它上面調(diào)用類函數(shù):

5.class
=> Fixnum
(2 ** 96).class
=> Bignum
7.5.class
=> Float
(1..10).class
=> Range
"foo".class
=> String
/^foo[a-e]$/.class
=> Regexp
:foo.class
=> Symbol
[].class
=> Array
{}.class
=> Hash

塊和閉包

雖然這與.NET 1.X中的事件處理程序類似,但當(dāng)你想處理它們時還是必須要定義完整的類函數(shù)來連接這些事件,這就導(dǎo)致需要創(chuàng)建大量的類函數(shù),因為框架需要它。

.NET 2.0引入了匿名委派的概念,它們起的作用與Ruby中的塊類似,如:

irb(main):001:0> h = {:foo=>'bar', :hi=>'there'}
=> {:foo=>"bar", :hi=>"there"}
irb(main):002:0> h.each_key {|k| puts k}
foo
hi
=> {:foo=>"bar", :hi=>"there"}
irb(main):003:0> h.each {|k,v| puts "#{k}: #{v}"}
foo: bar
hi: there
=> {:foo=>"bar", :hi=>"there"}

正如你所看到的,Ruby中塊的語法是相當(dāng)簡潔的:通常使用一對大括號打開塊和關(guān)閉塊,使用|x,y|語法標(biāo)出傳遞給塊的變量。

Ruby中的塊和閉包類似,正如.NET 2.0中的匿名委派,這意味著它們有權(quán)訪問它們封裝作用域的值,即使那個作用域退出后也可以訪問。下面是一個將幾個值相乘的閉包示例:

irb(main):004:0> n = [5, 6, 10]
=> [5, 6, 10]
irb(main):005:0> t = 1
=> 1
irb(main):006:0> n.each { |i| t *= i }
=> [5, 6, 10]
irb(main):007:0> t
=> 300

你甚至可以將引用存儲在塊中,方便以后使用,如:

irb(main):008:0> t = 1
=> 1
irb(main):009:0> f = lambda { |i| t *= i }
=> # 函數(shù)Ruby中函數(shù)的定義比.NET簡單多了,因為不需要指定類型,如:

irb(main):001:0> def greet(name)
irb(main):002:1> puts "Hello, #{name}!"
irb(main):003:1> end
=> nil
irb(main):004:0> greet "Reader"
Hello, Reader!
=> nil
irb(main):005:0> greet 42
Hello, 42!
=> nil

分享:.NET Framework 3.5 SP1正式版
微軟今天發(fā)布了.NET Framework 3.5第一個SP服務(wù)包的最終版.這是一個累積更新,包含很多基于.NET Framework 2.0、3.0和3.5不斷生成的新功能,此外還包括.NET Framework 2.0 SP2和.NET Framewo

來源:模板無憂//所屬分類:.Net教程/更新時間:2009-08-02
相關(guān).Net教程