Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >动态方法的Ruby帮助

动态方法的Ruby帮助
EN

Stack Overflow用户
提问于 2010-11-23 06:23:13
回答 2查看 247关注 0票数 1

我需要一些帮助来定义一个动态方法。

基本上,我有许多类驻留在一个模块中。我需要根据传入的字符串列表在每个类中生成一个方法列表,该列表特定于每个类(即不同的类具有不同的字符串列表)。该方法的主体应该类似于:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
client.call(the_string, @an_instance_variable)

所以基本上我想创建一个方法,我可以在每个驻留在同一个模块中的类中使用它,以便基于传递的字符串数组动态生成一组方法。

类似于:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
register_methods @@string_array

假设"name“是数组中的一个字符串,那么它将生成如下方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def name
  client.call("name", @an_instance_variable)
end

我希望这是有意义的。在尝试了几个小时的各种事情后,我被难住了,真的很感谢任何人的意见。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-23 06:56:34

没有可用的irb,但这应该可以工作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def register_methods strings
  strings.each do |s|
    define_method s.to_sym do
      client.call("name", @an_instance_variable)
    end
  end
end
票数 4
EN

Stack Overflow用户

发布于 2010-11-23 07:25:41

我不知道你打算如何使用@an_instance_variable,但你也可以像这样定义接受参数的方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def register_methods *methods
  methods.each do |method|
    define_method method do |arg|
      client.call(method, arg)
    end
  end
end

因此,如果您发送register_methods("name","age"),您将有两个新方法,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def name(arg)
  client.call("name", arg)
end

def age(arg)
  client.call("age", arg)
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4253327

复制
相关文章
iOS在线音频流播放
前言 这是一篇关于在线音频播放的文章,参考自苹果OS X的demo。 在移植到iOS后,可以通过iphone播放Mac上面的音频,实现在线播放音频的功能。 本文可以学习到socket编程、AudioFileStream转换音频流、AudioQueue播放音频、信号量的使用。 正文 demo有两个工程,分别是servers和client。 servers是OS X的应用,作为服务端,负责发送音频流数据; client是iOS的应用,作为客户端,负责接收音频流数据; 音频数据通过AudioFil
落影
2018/04/27
2.7K0
iOS在线音频流播放
NoteBurner iTunes DRM Audio Converter for Mac(苹果DRM音频转换器)
NoteBurner iTunes DRM Audio Converter mac版可以一键将DRM保护的音乐文件转换为常见的MP3或者是AAC格式的音频文件,可以在后台以20倍速度记录有声读物。
Mac知识分享
2022/09/02
1K0
Sidify Apple Music Converter mac(Apple音乐转换器)
Sidify Apple Music Converter是一款全功能,功能强大的专业Apple音乐转换器,不仅可以转换Apple音乐文件,还可以转换所有可在iTunes中播放的音乐,包括iTunes M4A / M4B,Audible AA / AAX有声读物和iTunes M4P音乐,转换时可以选择最大20倍的转换速度。
Mac小小
2022/08/26
1.3K0
iOS AVDemo(3):音频封装,采集编码并封装为 M4A丨音视频工程示例
iOS/Android 客户端开发同学如果想要开始学习音视频开发,最丝滑的方式是对音视频基础概念知识有一定了解后,再借助本地平台的音视频能力上手去实践音视频的采集 → 编码 → 封装 → 解封装 → 解码 → 渲染过程,并借助音视频工具来分析和理解对应的音视频数据。
关键帧
2022/06/13
5820
iOS AVDemo(3):音频封装,采集编码并封装为 M4A丨音视频工程示例
iOS/Android 音视频开发专题
记得从 2016 年起我开始从事音视频 SDK 开发,当时音频技术处于零基础阶段。现在 Android 和 iOS SDK 已迭代至 v3.x 版本。在期间得到很多乐于分享的开发者帮助,如果没有他们分享的精神,我无法完成这么复杂的工作。现在,我也愿意把自己在音视频领域积累的开发经验分享出来,让相关开发者能够得到一点启发和帮助。
100001509164
2022/01/20
8540
使用播放器播放视频有黑边
1.推流端推的画面本身有黑边。因为SDK推流只支持16:9(或者9:16)的画面,如果推流端采集的画面不是16:9的,SDK编码时也会编码成16:9的比例,多出来的部分以黑色填充,具体表现就是编码出来的画面有黑边。这样的情况拉流端SDK一般是处理不了的
腾讯云-qichengdeng
2019/09/05
2.9K0
iOS音频播放(一)
转载: http://msching.github.io/blog/2014/07/07/audio-in-ios/
音视频_李超
2020/04/02
1.8K0
AudFree Audio Converter 2.9.0 Mac音频格式文件转换器
AudFree Audio Converter是一款功能强大的音频转换软件,该软件的最大特点是支持多种加密音频格式的转换,如DRM M4P、M4B、AA、AAX等,可以帮助用户轻松转换iTunes购买的音频、亚马逊音乐等流媒体平台下载的音频。
用户1517359
2023/05/20
5890
AudFree Audio Converter 2.9.0 Mac音频格式文件转换器
AudioToolbox_如何录制PCM格式的数据
先来认识一下头文件 AudioConverter.h: 音频转换接口。定义用于创建和使用音频转换器的接口 AudioFile.h: 定义一个用于读取和写入文件中的音频数据的接口。 AudioFileStream.h: 定义了一个用于解析音频文件流的接口。 AudioFormat.h: 定义用于分配和读取音频文件中的音频格式元数据的接口。 AudioQueue.h: 定义播放和录制音频的接口。 AudioServices.h: 定义三个接口。系统健全的服务让你播放简短的声音和警报。音频硬件服务提供了一个轻量级的接口,用于与音频硬件交互。音频会议服务,让iPhone和iPod触摸应用管理音频会议。 AudioToolbox.h: 顶层包括音频工具箱框架的文件。 AuGraph.h:定义用于创建和使用音频处理图形界面。 ExtendedAudioFile.h: 定义用于将音频数据从文件直接转化为线性PCM接口,反之亦然。
酷走天涯
2018/09/14
1.5K0
AudioToolbox_如何录制PCM格式的数据
iOS AVDemo(4):音频解封装,从 MP4 中解封装出 AAC丨音视频工程示例
iOS/Android 客户端开发同学如果想要开始学习音视频开发,最丝滑的方式是对音视频基础概念知识有一定了解后,再借助本地平台的音视频能力上手去实践音视频的采集 → 编码 → 封装 → 解封装 → 解码 → 渲染过程,并借助音视频工具来分析和理解对应的音视频数据。
关键帧
2022/06/13
5170
iOS AVDemo(4):音频解封装,从 MP4 中解封装出 AAC丨音视频工程示例
使用AudioToolbox播放AAC
前言 使用VideoToolbox硬编码H.264 使用VideoToolbox硬解码H.264 使用AudioToolbox编码AAC 在上一篇中,介绍了如何从麦克风采集声音并用AudioToolbox编码成AAC码流,这次是使用AudioToolbox来播放之前录制的AAC码流。 介绍 在iOS设备上播放音频,可以使用AVAudioPlayer(AVFoundation框架内),但是不支持流式播放。 Apple recommends that you use this class for aud
落影
2018/04/27
1.5K0
使用AudioToolbox播放AAC
FFmpeg4.0+SDL2.0笔记07:Seeking
背景:在系统性学习FFmpeg时,发现官方推荐教程还是15年的,不少接口已经弃用,大版本也升了一级,所以在这里记录下FFmpeg4.0+SDL2.0的学习过程。
非一
2021/04/13
6540
FFmpeg推流到Nginx并使用播放器播放
如今直播很火,下面就简单分享下我是如何直播的。必备工具:FFmpeg,Nginx,还有一个播放器。之前在实例解析中分享过如何用FreeSWITCH来做直 播,这次分享下如何用FFmpeg配合Nginx做直播。
杜金房
2020/12/21
1.9K0
使用PWM实现语音播放
链接:https://community.arm.com/cn/b/blog/posts/nucleof429-2-pwm
MCU起航
2021/04/23
2.9K0
delphi 使用windowsmediaplayer播放视频
delphi7中原本自带的一个Tmediaplayer控件,但是发现有不少视频是无法播放的,于是就想到了用windowsmediaplayer来进行播放。
Vaccae
2019/07/25
3.1K0
delphi 使用windowsmediaplayer播放视频
超级播放器点播如何使用Fileid加密播放?
1.播放视频中会有一些视频不想被没获取到或者不想别人看到,这个时候就会用到加密,超级播放是通过视频文件的id来进行加密
腾讯云-qichengdeng
2019/09/12
1.6K0
使用Python,怎么播放视频?
使用Python,怎么播放视频? 昨天分享了用python播放音频,今天来分享一下播放视频。将这一主题补充完整。 import numpy as np import cv2 cap = cv2.VideoCapture('vtest.avi') while(cap.isOpened()): ret, frame = cap.read() gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) cv2.imshow('frame',gray
TalkPython
2020/12/29
1.7K0
点击加载更多

相似问题

AudioQueue内存播放示例

33

播放中的AudioQueue间隙

10

ios音频:使用audioqueue改变播放进度

18

在使用AudioQueue录制的同时使用MPMoviePlayerController播放视频

10

无法同时录制/播放AudioQueue和动画

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文