[转帖]ruby 对象的特殊方法

[size=large][转帖]ruby 对象的特殊方法[/size]
原文:[url]http://fujinbing.iteye.com/blog/1125884[/url]


特殊方法是指某实例所特有的方法。一个对象有哪些行为由对向所属的类决定,但是有时候,一些特殊的对象有何其他对象不一样的行为,在多数程序设计语言中,例如C++和Java,我们必须定义一个新类,但在Ruby中,我们可以定义只从属于某个特定对象的方法,这种方法我们成为特殊方法(Singleton Method)。

class SingletonTest 
def info
puts "This is This is SingletonTest method"
end
end

obj1 = SingletonTest.new
obj2 = SingletonTest.new

def obj2.info
puts "This is obj2"
end

obj1.info
obj2.info


执行结果为:
This is This is SingletonTest method
This is obj2


有时候,我们需要给一个对象定义一系列的特殊方法,如果按照前面的方法,那么只能一个一个定义:

def obj2.singleton_method1 
end

def obj2.singleton_method2
end

def obj2.singleton_method3
end
……
def obj2.singleton_methodn
end


这样做非常繁复麻烦,而且无法给出一个统一的概念模型,因此Ruby提供了另外一种方法,
class << obj
……
end

obj是一个具体的对象实例,class << 代表它的特殊类。

class SingletonTest 
def meth1
puts "This is meth1"
end

def meth2
puts "This is meth2"
end
end

obj1 = SingletonTest.new
obj2 = SingletonTest.new

class << obj2
def meth1
puts "This is obj2's meth1"
end

def meth2
puts "This is obj2's meth2"
end
end

obj1.meth1
obj1.meth2
obj2.meth1
obj2.meth2


执行结果为:
This is meth1
This is meth2
This is obj2's meth1
This is obj2's meth2
把审批体验做成一体化:SAP Business Workflow 里的 Secondary Method、Before Method 与 After Method 摘要:SAP Business Workflow 中,Task 的 Secondary、Before 和 After 三类方法对提升审批体验和可追溯性至关重要。Secondary Method 可自动展示辅助信息(如审批时弹出排班报表),但需注意其独立会话特性;Before Method 适合预处理和审计留痕;After Method 确保收尾动作可靠执行。三类方法按特定顺序调用,且错误不影响主流程。合理使用这些方法能减少事务码切换,增强审计能力,优化用户体验。(149字) 阅读详情

相关推荐

ESP32-CAM实战:从零构建高精度QR二维码识别系统

本文详细介绍了如何使用ESP32-CAM构建高精度QR二维码识别系统,涵盖硬件配置、开发环境搭建、二维码识别库选择与优化、完整系统实现及实战问题排查。通过优化识别算法和电源管理,系统可实现快速、稳定的二维码识别,适用于物联网设备绑定等场景。

weixin_42524703的博客 433

对象序列化(串行化)的作用、使用

一、序列化的作用 序列化定义:将对象转换为二进制数据流(操作目标是对象)。 作用:方便传输及保存,可以帮开发者完成保存和读取对象成员变量取值的过程。 规定:要求读写或存储的对象实现Serializable接口(此接口未定义任何方法,仅仅被用作一种标记,以便被编译器作特殊处理)。 也就是说,若想对对象进行序列化,必须先实现Serializable接口。 二、序列化使用方法

lpp1234567的专栏 2198

100G SR4 光模块设计

目前100G SR4 光模块主要采用COB 封装技术,在光电芯片键合(bonding)阶段,首先使用银胶将光芯片、电芯片精准固定在电路板规定位置上,该工序即为元件键合(die bonding);然后采用打线机进行金线键合(wire bonding),完成光模块内部的电气连接。在光路耦合阶段,采用8路阵列透镜组完成光路90°弯折及聚焦,并采用有源耦合的工艺进行光路的最终确认,该设计方案工艺简单、高效,借助全自动贴片机、打线机和耦合台就可实现100G SR4 光模块的大批量生产。

Flyin_Group的博客 1376

Ruby之旅(二) Ruby的基本语法以及对象的使用,方法的定义及调用,属性的定义及使用...

(一)Ruby中一切都是对象,包括一个常数. 比如可以用.class属性来查看一个对象的类型,你可以看下1.class,会发现常数1的类型是Fixnum,1不过是Fixnum的一个实例。还可以使用-37这个Fixnum的实例方法abs来取得绝对值:-37.abs()会返回37 又如输入一个1.1.class,会返回Float。 (二)Ruby语法 Ruby中的类以class开始 以en...

weixin_30654583的博客 326

ENSP实战:从零搭建企业级路由交换网络(附完整拓扑图+配置代码)

本文详细介绍了如何使用ENSP从零搭建企业级路由交换网络,包括拓扑设计、IP规划、交换机与路由器配置、路由互通测试及常见故障排查。通过完整的拓扑图和配置代码,帮助读者掌握VLAN隔离、静态路由配置等核心技能,解决实际部署中的典型问题。

weixin_29306875的博客 281

MIT Mini Cheetah--仿真流程

MIT Mini Cheetah–仿真 摘要 由于官方提供代码中,控制仿真环境中的猎豹机器人运动需要遥控器来控制。官方默认推荐使用logitech Gamepad F310游戏手柄:We use the Logitech F310 controller. There’s a switch in the back, which should be in the “X” position. The controller needs to reconnected if you change the switch

Galaxy_Robot的博客 5916

Ruby方法

Ruby 通常用 def 关键字定义方法,在 def 之后是新方法的名称,紧接着是方法体。

路漫漫其修远兮,吾将上下而求索! 1795

STM32F4系列HAL库配置定时器实验——输入捕获

STM32F4系列HAL库配置定时器实验——输入捕获 输入捕获简单讲解 输入捕获模式可以用来测量脉冲宽度或者测量频率。我们以测量周期和频率为例,用一个简图来说明输入捕获的原理 假定定时器工作在向上计数模式, 图中 t1~t2 时间,就是我们需要测量的高电平时间。测量方法如下:首先设置定时器通道 x 为 上升沿捕获,这样,t1 时刻,就会捕获到当前的 CNT 值,然后立即清零 CNT,并设置通道 x为下降沿捕获,这样到 t2 时刻,又会发生捕获事件,得到此时的 CNT 值,记为 CCRx2。这样,根据定时器

azs0504的博客 9286

解释一下ruby中的特殊方法与特殊类?

解释一下ruby中的特殊方法与特殊类? Ruby [AD] 特殊方法是指某实例所特有的方法。一个对象有哪些行为由对向所属的类决定,但是有时候,一些特殊的对象有何其他对象不一样的行为,在多数程序设计语言中,例如C++和Java,我们必须定义一个新类,但在Ruby中,我们可以定义只从属于某个特定对象的方法,这种方法我们成为特殊方法(Singleton Method)。 class Si

emerald0106的专栏 532

从硅到氮化镓:用Sentaurus TCAD仿真GaN HEMT功率器件,我踩过的那些坑

本文分享了使用Sentaurus TCAD仿真GaN HEMT功率器件的实战经验,详细解析了从硅基到氮化镓的技术转型中遇到的五大关键挑战:材料参数设置、极化效应建模、网格划分策略、陷阱模型校准以及仿真与实测数据匹配。通过具体案例和参数优化方法,帮助工程师避开常见陷阱,提升TCAD仿真精度与效率。

weixin_28726671的博客 379

携程机票数据爬取实战:使用 Python 获取携程网机票信息

通过本篇博客,我们详细介绍了如何使用 Python 爬取携程网的机票信息,涉及了静态网页爬取(使用 Requests 和 BeautifulSoup)和动态网页爬取(使用 Selenium)两种方法。通过获取的数据,我们不仅能够进行票价分析,还可以构建更为复杂的预测模型或趋势分析工具。爬虫技术不仅能够帮助我们收集有价值的数据,还能够为商业决策提供数据支持。在实际应用中,我们可以结合更多的分析方法,如自然语言处理、图像处理等,进一步提升数据的价值。

2201_76125261的博客 1657

ruby 对象的特殊方法

特殊方法是指某实例所特有的方法。一个对象有哪些行为由对向所属的类决定,但是有时候,一些特殊的对象有何其他对象不一样的行为,在多数程序设计语言中,例如C++和Java,我们必须定义一个新类,但在Ruby中,我们可以定义只从属于某个特定对象的方法,这种方法我们成为特殊方法(Singleton Method)。 class SingletonTest def info put...

iteye_572的博客 135

基于 Vivado HLS 的 AC97 音频系统设计

介绍一种基于 FPGA 的 AC97 音频系统设计。系统的核心部件采用 Xilinx Atlys 的板载 Spartan6 XCSLX45 芯片,使用的工具为 Xilinx 的高层 次 综 合 技 术 Vivado HLS。首先使用 C /C + + 代码编写的算法描述系统的 FIR 滤波器; 然后按 照 Vivado HLS 编译工具的规范,将程序代码转换为 RTL 模型,快速、直接地生成对 应左右声道的 FIR IP 核和综合结果; 再结合互连的 MicroBlaze 处理器 IP 核,处理 一段立体声

qq_43416206的博客 328

转帖 Ruby中复制对象的几种方法

[code="java"] Ruby内置的方法Object#clone和Object#dup可以用来copy一个对象,两者区别是dup只复制对象的内容,而clone还复制与对象相关联的内容,如singleton method [ruby] view plaincopyprint? s = "cat" def s.upcase "CaT" end s_dup...

jamst 439

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

[转帖]ruby的字符串

[转帖]ruby的字符串 原文:http://fujinbing.iteye.com/blog/1126332 %{String} 用于创建一个使用双引号括起来的字符串 %Q{String} 用于创建一个使用双引号括起来的字符串 str= true or false "hello".include? "lo" #=> true "hello".include?...

jamst 177

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

[转帖]重新认识Ruby的多态和duck type

多态在Java中是如何定义的? 原文:[url]http://developer.51cto.com/art/200708/54611.htm[/url] 我这样理解:多态需要借助接口来实现,就是所有实现了该特定的接口的类用起来都象他。 什么是duck type? 在Programming Ruby中这样定义:如果对象能够象鸭子那样行走,象鸭子那样呱呱叫,那么解释器会很高兴的把...

简单就是美 323

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

[转帖]ruby 中的符号

原文:[url]http://fujinbing.iteye.com/blog/1125897[/url] 1. "

简单就是美 216

[转帖]ruby 中的 respond_to 和send 方法

[size=large]Ruby中 respond_to? 和 send 的用法 [/size] 原文:[url]http://fujinbing.iteye.com/blog/1125990[/url] 如同其他的OO语言一样,在ruby中,通过给对象发送消息,来完成对象的功能,比如 str.upcase ,就是给str发送upcase的消息,点操作符(.),就是用来给对象发送消息的,s...

简单就是美 155

[转帖]在Ruby中对字符串和block求解

[size=large]在Ruby中对字符串和block求解[/size] 作者:Jay Fields 原文:[url]http://tech.it168.com/d/2007-09-07/200709071737579.shtml[/url] [size=medium]介绍 [/size] 对包含代码的字符串和block求解,是我最钟爱的Ruby特性之一。Ruby提供了多种...

简单就是美 175

ruby元编程(入门收藏)

转帖:http://hi.baidu.com/mepm/blog/item/edb5e1500c75975c1038c2f6.html 元编程并不是一个很新的概念,通常元编程被认为是通过程序来生成程序,如果从这种意义上来考虑,那么lex和yacc以及JavaCC应该都可以算是具有 了元编程的概念,在Java中,元编程得到了广泛的应用。但在Ruby中,元编程的使用变得相当的简单和容易实现,使用R...

研究Android技术,以及和Android相关的任何盈利模式 346

【转帖】在思维上投资

当你选择专注于哪个领域发展的时候,那些容易找到工作的技术很吸引眼球。PHP、Java和.NET都是很强大的。学习上述几种语言,你就可以去申请一份编写上述语言的代码的工作,而且成功得到这份工作的几率很高(不一定,另外得到容易,待下去不容易,编程不是大锅饭,是优胜劣汰)。这样想,那如果在一种新的还未稳定的技术上花费时间和精力,就会显得很愚蠢,特别是如果你之前并没有打算开发这种技术。TIOBE

我是老朱 879

JQuery 简单体验(转帖)

Jquery是继prototype之后又一个优秀的Javascript框架。对prototype我使用不多,简单了解过。但使用上jquery之后,马上被她的优雅吸引住了。有人使用这样的一比喻来比较prototype和jquery:prototype就像Java,而jquery就像ruby.实际上我比较喜欢java(少接触Ruby罢了)但是jquery的简单的实用的确有相当大的吸引力啊!在项目里我把...

gaojie1190的专栏 143

[转帖]Java Web开发构想

1.背景、形势 能够进行Web开发的编程语言和技术很多 (1) 动态解释语言 PHP; Perl; Python (Zope, Plone); Ruby (Ruby on Rails); (2) 编译语言 Java; .net Java Web开发远非一枝独秀: 除了受到来自.net 这个重量...

apusic 328

[转帖]Grrovy入门

 Groovy快速入门 1、                集合 (1)List (java.util.List) list = [1, 2, 'hello', new java.util.Date()] assert list.size() == 4 assert list.get(2) == 'hello' 注意:一切都是对象(数字会自动转换) (2)Map (java.util.Map...

Java&WAP技术 521

[转帖]为 PHP 应用提速、提速、再提速!

第 1 部分: 使用操作码缓存软件提升性能和吞吐量原文:http://www.ibm.com/developerworks/cn/opensource/os-php-fastapps1/PHP 是一种脚本语言,常用于创建 Web 应用程序。它易于掌握,并能迅速生成可视化结果。然而,由于 PHP 是以解释的方式执行的,所以 PHP 代码每次执行时都会被解析和转换成操作码(opcode)。...

anwoxi2603的博客 381

掌握 Ajax,第 1 部分: Ajax 简介[转帖]

理解 Ajax 及其工作原理,构建网站的一种有效方法级别: 初级Brett McLaughlin , 作家,编辑, OReilly and Associates2006 年 1 月 04 日Ajax 由 HTML、javascript™ 技术、DHTML 和 DOM 组成,这一杰出的方法可以将笨拙的 Web 界面转化成交互性的 Ajax 应用程序。本文的作者是一位 Ajax 专家,他演示了这些技

文维东的专栏 940
上一篇: Ruby中的inject
下一篇: [转帖]在Ruby中对字符串和block求解
biyeah
博客等级 码龄24年 0粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值