日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何實現(xiàn)Ruby向?qū)ο蟀l(fā)送消息

Ruby語言做為一種解釋型面完全面向?qū)ο蟮哪_本語言,值得我們?nèi)ド钊胙芯?。我們可以利用Ruby向?qū)ο蟀l(fā)送消息。下面將為大家詳細介紹相關方法。#t#

創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站設計、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的臨高網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!

我們可以直接實現(xiàn)Ruby向?qū)ο蟀l(fā)送消息:

  1. class HelloWorld 
  2. def say(name) 
  3. print "Hello, ", name 
  4. end 
  5. end 
  6. hw = HelloWorld.new 
  7. hw.send(:say,"world") 

我們通常使用hw.say("world"),但send可以對private的方法起作用。 不光如此send可以使程序更加動態(tài),下面我們看看一個例子:

我們定義了一個類Person,我們希望一個包含Person對象的數(shù)組能夠按照Person的任意成員數(shù)據(jù)來排序?qū)崿F(xiàn)Ruby向?qū)ο蟀l(fā)送消息:

 
 
 
  1. class Person 
  2. attr_reader :name,:age,:height 
  3. def initialize(name,age,height) 
  4. @name,@age,@height = name,age,height 
  5. end 
  6. def inspect 
  7. "#@name #@age #@height" 
  8. end 
  9. end 

在ruby中任何一個類都可以隨時打開的,這樣可以寫出像2.days_ago這樣優(yōu)美的code,我們打開Array,并定義一個sort_by方法:

 
 
 
  1. class Array 
  2. def sort_by(sysm) 
  3. self.sort{|x,y| x.send(sym) 
    <=> y.send(sym)} 
  4. end 
  5. end 

我們看看運行結(jié)果:

 
 
 
  1. people = [] 
  2. people << Person.new("Hansel",35,69) 
  3. people << Person.new("Gretel",32,64) 
  4. people << Person.new("Ted",36,68) 
  5. people << Person.new("Alice", 33, 63) 
  6. p1 = people.sort_by(:name) 
  7. p2 = people.sort_by(:age) 
  8. p3 = people.sort_by(:height) 
  9. p p1 # [Alice 33 63, Gretel 32 
    64, Hansel 35 69, Ted 36 68] 
  10. p p2 # [Gretel 32 64, Alice 33 
    63, Hansel 35 69, Ted 36 68] 
  11. p p3 # [Alice 33 63, Gretel 32 
    64, Ted 36 68, Hansel 35 69] 

這個結(jié)果是如何得到的呢?

其實除了send外還有一個地方應該注意attr_reader,attr_reader相當于定義了name, age,heigh三個方法,而Array里的sort方法只需要提供一個比較方法:

x.send(sym) <=> y.send(sym) 通過send得到person的屬性值,然后在使用<=>比較。

以上就是Ruby向?qū)ο蟀l(fā)送消息的一些方法技巧講解。


分享名稱:如何實現(xiàn)Ruby向?qū)ο蟀l(fā)送消息
網(wǎng)站網(wǎng)址:http://m.5511xx.com/article/dpspcjh.html