Ruby:如何编写 bang 方法,例如地图?

2023-11-24

我想编写一些新的 Array 方法来更改调用对象,如下所示:

a = [1,2,3,4]
a.map!{|e| e+1}
a = [2,3,4,5]

...但我不知道如何做到这一点。我想我需要一个新大脑。

所以,我想要这样的东西:

class Array
  def stuff!
    # change the calling object in some way
  end
end

地图!只是一个例子,我想写一个完全新鲜的例子,而不使用任何预先存在的!方法。

Thanks!


EDIT- 更新了答案以反映您的问题的更改。

class Array
  def stuff!
        self[0] = "a"
  end
end

foo = [1,2,3,4]

foo.stuff!

p foo #=> ['a',2,3,4]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ruby:如何编写 bang 方法,例如地图? 的相关文章

随机推荐

  • 使用jquery将外部html文件加载到div

    我正在使用一个有很多工具提示的 html 页面 每个工具提示都有一个画廊 因为不可能使用具有相同 id 的多个画廊 我计划为画廊创建 6 个不同的 html 文件 然后将画廊加载到我的默认页面中 我需要为每个 div 计算 html 页面
  • 如何将图片打包到jar文件中

    我制作了一个 java 应用程序 并将所有类捆绑在 jar 文件中 当我从 netbeans 运行该项目时 我的应用程序运行成功 但当我将 jar 文件放在另一个位置并从那里运行时 我没有得到我的应用程序使用的图标 在代码中 我从项目文件夹
  • iOS 顶部的自定义可滚动标签栏

    我有一个关于在 iOS 应用程序中在屏幕顶部实现自定义可滚动选项卡栏的问题 我正在寻找一个与 vevo 应用程序非常相似的选项卡栏 如下图所示 我已经查看了这个滚动选项卡栏 https github com vermontlawyer JF
  • node.js 调用外部 exe 并等待输出

    我只想从nodejs App 调用外部exe 这个外部 exe 进行一些计算并返回 nodejs App 所需的输出 但我不知道如何在nodejs和外部exe之间建立连接 所以我的问题是 如何从 Nodejs 中正确调用具有特定参数的外部
  • 如何通过node中的mongojs将.json文档插入mongo服务器

    我是 NodeJS 和 MongoDB 的新手 我有这个代码 var fs require fs var mongojs require mongojs var db mongojs monitor configurations fs re
  • numpy 数组中的轴索引如何? [复制]

    这个问题在这里已经有答案了 From Numpy 的教程 轴可以用整数索引 例如0用于列 1是用于行 但我不明白为什么它们以这种方式索引 处理多维数组时如何计算每个轴的索引 根据定义 维度的轴号是该维度在数组中的索引shape 它也是在索引
  • 如何检查日期是否超过7天[重复]

    这个问题在这里已经有答案了 我想检查两个日期是否超过一周 例如检查两个日期是否有 7 天 此时数据范围应仅在一周内 7 天 我尝试过这样的事情 import java text ParseException import java text
  • 使用Python对字符串格式的数字进行排序[重复]

    这个问题在这里已经有答案了 我有一个列表 其中包含一些字符串中的章节号 当我使用键功能对键进行排序时 它给出了错误的结果 keys 1 1 1 2 2 1 10 1 keys sort print keys 1 1 1 2 10 1 2 1
  • LINQ 中长类型的 Sum 方法

    我怎样才能获得长类型的一些项目的总和 这是我的代码 using gEn myEntities new gEn var load from items in myEntities Orders select items PayO Defaul
  • 使 Adsense 响应式

    我是网站所有者 目前使用 Adsense 来获利 我决定将我的网站设计更改为响应式设计 以便网站可以在各种屏幕尺寸上适当地呈现自己 但不幸的是 Adsense 在这方面不太灵活 当屏幕宽度变得太小时 简单地隐藏大型桌面广告相对简单 但这对收
  • 加入线程时是否需要内存屏障?

    如果线程 A 生成另一个线程 B 其唯一目的是写入变量 V 然后等待它终止 是否需要内存屏障来确保线程 A 上的 V 的后续读取是最新的 我不确定终止 连接操作中是否存在任何隐式障碍 导致它们变得多余 这是一个例子 public stati
  • git推送没有失败但是不起作用

    我正在使用 Git 但遇到了几个问题 我可以推动 我的同事可以拉动 反之亦然 但是远程版本不是最新的 如果我在 html 中编写测试 除了本地版本之外没有人能看到它 我认为它可能来自遥控器上的分支 不是吗 编辑1 我会尝试更具体 我有一个位
  • 在 Android 应用程序中显示饼图 [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我想在我的 Android 应用程序中显示饼图 如下所示 那么关于这个的任何想法我怎样才能实现这一目标呢 如果有任何图书馆 请推荐我 预先感谢 为了显示不同类型的图表 您可以使用 A
  • 对象已完成但尚未收集垃圾时的弱引用行为

    这是一个关于 C NET 中对象终结和收集的学术问题 背景阅读是 C 语言规范 自动内存管理 的第 3 9 节 当没有对对象的显式引用时 它可能会被垃圾收集 它变得 有资格被销毁 在将来的某个时刻 例如 如果强制垃圾收集 将运行对象的析构函
  • 如何编写(自动)仅应用于特定文件夹的 vimrc 文件

    假设我有一个项目位于名为 bin 的文件夹中 并且我希望在编辑项目文件夹内的任何文件时自动加载一些特定的 vim 配置 我怎样才能做到这一点 我认为你想要的是一个自动命令 也许是这样的 autocmd BufRead BufNewFile
  • SQL Server 2008 中的 Do while 循环

    有没有什么方法可以实现do whileSQL Server 2008 中的循环 我不确定 MS SQL Server 2008 中的 DO WHILE 但您可以更改 WHILE 循环逻辑 以便像 DO WHILE 循环一样使用 示例取自此处
  • 构建具有离线功能的 ASP.Net Web 应用程序

    我正在构建一个 asp net 3 5 Web 应用程序 想知道您是否知道我可以通过什么方式来实现它 以便有一些离线功能 这是必要的 因为人们将能够在其设备上 安装 网络应用程序 例如 使用 iPhone 上的 添加到主屏幕 功能 然后在离
  • 移动浏览器是否通过 HTML5 音频标签发送 httpOnly cookie?

    我尝试通过 html5 音频标签播放一些 mp3 文件 对于桌面来说 这非常有效 使用 Chrome 但是当涉及到移动浏览器 还有 Chrome 适用于 Android 时 似乎存在一些困难 我用一些密码保护流 因此流服务器需要找到一个特殊
  • 检查cygwin中符号链接类型的差异

    我使用 winsymlinks native 和 cygwin 符号链接 具体取决于 Windows 是否需要并且可以跟踪链接 我想要一种 cygwin 的方式来查看它是什么类型的符号链接 因为它只看到符号链接 但 DOS 看到差异 我需要
  • Ruby:如何编写 bang 方法,例如地图?

    我想编写一些新的 Array 方法来更改调用对象 如下所示 a 1 2 3 4 a map e e 1 a 2 3 4 5 但我不知道如何做到这一点 我想我需要一个新大脑 所以 我想要这样的东西 class Array def stuff