`
mail07
  • 浏览: 23163 次
  • 来自: ...
社区版块
存档分类
最新评论

ruby如何获取一个方法所需参数的数量

    博客分类:
  • ruby
阅读更多


找了很久哈,终于找到了

有这方面需求的朋友可以看 ruby 手册里面的 Class Method

用法如下

class C
     def one;    end
     def two(a); end
     def three(*a);  end
     def four(a, b); end
     def five(a, b, *c);    end
     def six(a, b, *c, &d); end
   end
   c = C.new
   c.method(:one).arity     #=> 0
   c.method(:two).arity     #=> 1
   c.method(:three).arity   #=> -1
   c.method(:four).arity    #=> 2
   c.method(:five).arity    #=> -3
   c.method(:six).arity     #=> -3

   "cat".method(:size).arity      #=> 0
   "cat".method(:replace).arity   #=> 1
   "cat".method(:squeeze).arity   #=> -1
   "cat".method(:count).arity     #=> -1
分享到:
评论

相关推荐

    Programming Ruby (English Version) and Source Code

    5. **方法和块的参数**:包括默认参数值、可变数量的参数、块参数等。 6. **异常处理**:Ruby中的`begin-rescue-end`结构用于捕获和处理程序运行时可能出现的错误。 7. **文件和I/O**:如何读写文件,处理标准输入...

    Ruby袖珍参考手册

    《Ruby袖珍参考手册》是一本旨在帮助Ruby开发者快速查找所需知识点的手册。无论你是通过Rails框架接触Ruby,还是因为Ruby是一种干净、强大且表达力丰富的语言而对它产生兴趣,《Ruby袖珍参考手册》都能提供你需要的...

    Ruby-RedisDashboard一个用于监控Redis服务器的Sinatra应用

    2. **安装依赖**:运行`bundle install`安装所需的Ruby gem依赖。 3. **配置**:在`config.ru`或Rails项目的配置文件中设置Redis连接参数。 4. **启动应用**:使用`rackup`命令启动Sinatra应用,或者在Rails中通过`...

    Ruby基础知识之方法、代码段

    可变参数的传递可以通过在参数前加星号`*`来实现,这样方法就可以接受任意数量的参数,将这些参数作为一个数组处理。例如: ```ruby def add_person(*users) puts users end add_person("Alice") add_person("Bob...

    Ruby-GearedPagination以可变速度分页ActiveRecord数据集合

    传统的分页方法如`Kaminari`或`will_paginate`在处理大量数据时,会一次性加载所有分页所需的记录,这可能导致内存占用过多,从而影响应用程序的性能。`Geared Pagination`则采用了一种更聪明的策略,它根据当前的...

    使用ANT和 GA算法 使用 GPU ( Cuda ) 解决 Travelers Salesman 问题_Cuda _代码_下载

    我正在使用一个开源 map_generator(用 ruby​​ 编码),它将城市数量作为参数并构建一个 map.txt,其中包含一个带有所述 N 个城市的随机城市地图。运行地图生成器的命令:ruby map_generator.rb Num_of_cities -我...

    Redis集群安装部署

    在此过程中,需要创建集群所需的目录结构,包括Redis实例的目录和日志目录。接着,修改Redis配置文件(redis.conf),设置相关参数以适配集群运行环境,如将daemonize设置为yes以允许守护进程运行,bind设置为空以...

    Redis集群部署_在Windows下安装

    【Redis集群部署_在Windows下安装】这篇教程主要讲解如何在Windows环境下搭建Redis集群,包括Redis的基本介绍、所需软件及详细步骤。 Redis是一种开源的内存数据结构服务器,它支持多种数据类型,如字符串、哈希表...

    内存管理内幕.内存管理内幕.

    - **`malloc`**:此函数接收一个大小参数,分配相应数量的连续内存,并返回一个指向这块内存的指针。如果内存不足,则返回NULL。 - **`free`**:接收一个指向先前通过`malloc`分配的内存块的指针,并将其释放。需要...

    iOS 视图滑动

    然后执行`pod install`命令,导入所需的依赖库。 接下来,我们介绍BlurredImage。这个库用于在iOS应用中实现模糊效果,使图片背景呈现出朦胧感,增加视觉吸引力。同样,我们可以通过CocoaPods来安装: ```ruby pod...

    JDK5.CHM和JDK6.CHM 中文版

    它们以离线手册的形式存在,方便开发者在没有网络的情况下查阅,且CHM格式具有良好的检索功能,能够快速定位所需信息。 对于Java初学者和经验丰富的开发者而言,掌握JDK5和JDK6的API是必不可少的,这有助于编写高效...

    springCloud

    RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展...

    memcached-1.4.21

    当服务器接收到请求时,会首先检查是否在缓存中存在所需的数据,如果存在则直接返回,避免了昂贵的数据库查询;若不存在,才会去数据库中获取,并将结果存入缓存,以便后续请求使用。 **二、安装与配置** 1. **下载...

    hbase-1.4.5-bin.tar.gz

    解压这个tar.gz文件后,你将获得HBase运行所需的所有文件,包括配置文件、可执行文件、库文件等。 1. **HBase架构**: HBase采用主-从结构,由一个Master服务器和多个RegionServer组成。Master负责元数据管理、...

    rpgtyxgq_downyi.com修改器

    1. RGSS103J.dll:这可能是RPG Maker系列游戏引擎的一个组件,RGSS(Ruby Game Scripting System)是RPG Maker XP和VX使用的脚本系统。DLL文件是动态链接库,包含了运行游戏所必需的函数和资源。 2. Game.exe:这是...

    Hbase官方手册.pdf

    HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 的论文 “Bigtable: A Distributed Storage System for Structured Data”。就像 Bigtable 利用 GFS(Google 文件系统)作为其...

    logstash-6.5.0.zip

    这个压缩包包含了运行Logstash所需的所有文件和配置,使得用户能够在Windows环境下安装和使用Logstash。 以下是对Logstash 6.5.0版本的一些关键知识点的详细说明: 1. **安装与配置**: - Windows下的安装通常...

Global site tag (gtag.js) - Google Analytics