偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Ruby函數(shù)指針概念詳解

開(kāi)發(fā) 后端
Ruby函數(shù)指針的理解雖然比較難理解,但是在學(xué)習(xí)的過(guò)程中我們又必須去掌握這一知識(shí)。希望大家可以通過(guò)本文介紹的內(nèi)容初步掌握這一概念。

Ruby語(yǔ)言中也存在被編程人員公認(rèn)為最難理解的指針。不過(guò)在這項(xiàng)新語(yǔ)言中指針又有什么新的特性呢。下面我們就來(lái)看看Ruby函數(shù)指針的一些相關(guān)概念介紹。#t#

本人目前正在重新學(xué)一遍Ruby語(yǔ)言,以期能達(dá)到一定的熟練程度??吹搅藟K的部分,想起了C、C++、C#中無(wú)比親切的函數(shù)指針。這東西在實(shí)現(xiàn)訪問(wèn)者模式時(shí)有很大用處。在《Programming Ruby》的HTML版中最后的部分有一節(jié)對(duì)訪問(wèn)者模式的實(shí)現(xiàn)方法的介紹。我還沒(méi)有看到那里。這里說(shuō)一下我的方法。

Ruby的塊功能只能外掛一段代碼。相比C語(yǔ)言家族的Ruby函數(shù)指針不是那么靈活。核心庫(kù)的Proc類(lèi)可以將塊代碼封裝起來(lái)。利用它,可以將多個(gè)塊一并作為參數(shù)傳給調(diào)用函數(shù)。下面的代碼演示了一個(gè)具體的過(guò)程。visit_node方法作為一個(gè)帶兩個(gè)參數(shù)的函數(shù)和proc方法一起,被傳給traverse調(diào)用。注意最后一行是如何將visit_node和proc方法封裝成Proc對(duì)象的。

 

  1. def traverse(visit_proc, proc)  
  2. i = 0 
  3. while (i < 10)  
  4. visit_proc.call(i, i + 1)  
  5. proc.call  
  6. i += 1  
  7. end  
  8. end  
  9. def visit_node(i, j)  
  10. print("#{i}, #{j}")  
  11. puts  
  12. end  
  13. def print_sharp  
  14. puts("###################")  
  15. end  
  16. traverse(Proc.new { |i, j| 
    visit_node(i, j) }, Proc.new 
    { print_sharp }) 

 

這樣就可以達(dá)到類(lèi)似于Ruby函數(shù)指針的效果了。有點(diǎn)類(lèi)似于C#中的代理。

責(zé)任編輯:曹凱 來(lái)源: 博客園
相關(guān)推薦

2009-12-16 14:51:26

Ruby nil

2009-12-16 16:24:00

Ruby on Rai

2009-12-18 15:56:05

Ruby特殊語(yǔ)法

2009-12-17 11:27:31

Ruby時(shí)間方法

2009-12-14 18:14:27

Ruby DSL

2009-12-15 15:55:43

Ruby模塊

2009-12-16 10:57:16

Ruby文件鎖

2021-06-10 08:51:57

C++指針聲明指針相關(guān)概念

2009-12-16 14:33:21

Ruby哈希表

2011-07-15 01:20:58

C指針函數(shù)函數(shù)指針

2009-12-18 17:20:00

Ruby核心類(lèi)

2009-01-08 09:26:06

C語(yǔ)言指針類(lèi)型

2021-12-21 15:31:10

C++語(yǔ)言指針

2009-12-16 16:44:31

Ruby on Rai

2009-12-16 14:24:48

Ruby函數(shù)lambd

2009-12-16 09:13:05

Ruby賦值語(yǔ)句

2009-12-18 15:06:10

Ruby常用庫(kù)

2009-12-18 09:43:32

Ruby偽變量

2010-05-17 13:39:10

MySQL Clust

2023-09-14 09:54:01

Btrfs文件系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)