`

Ruby => 方法限制

    博客分类:
  • Ruby
 
阅读更多
# -*- coding: utf-8 -*-

=begin
Ruby提供了3种限制层级(仅针对方法,变量不是通过此方式)
public    =>将方法公开为外部可以使用的实例方法:
private   =>将方法限制为只有内部可以使用(不允许接在接受者后面调用)
protected =>将方法限制为只有内部可以使用。另外,在同一个类中可以作为实例方法使用。
=end

class AccTest
  def pub
    # self.priv                         # => error
    priv
    self.proc                           
    puts "pub is a public method."
  end
  public :pub                           # 将pub方法设定为public(不指定意义也一样)

  def priv
    puts "priv is a private method."
  end
  private :priv                         # 将priv方法设定为private

  def proc                              # 将proc方法设定为protected
    puts "proc is a protected method."
  end 
  protected :proc

end 

acc_test = AccTest.new
acc_test.pub                           # => priv is a private method.
                                       #    proc is a protected method.
                                       #    pub is a public method.
# acc_test.proc                        # eror



# -*- coding: utf-8 -*-

=begin
此文件定义了同时对方法做相同的限制访问
没有特别指定的方法都是public, 单initialize方法是例外,它会恒为private
protected 则可以从同一个类(与其子类)中以实例方法的方式调用,但无法从其他地方调用
=end

class AccTest
  public                         # 没有指定实参的话
                                 # 下面定义的所有方法都是public
  def pub
    puts "pub is a public method."
  end

  private                        # 下面定义的所有方法都是private
  def priv
    puts "priv is a private method."
  end

end
分享到:
评论

相关推荐

    linux版 ruby-2.3.0

    - **Refinements**:这是一种新的作用域限制的模块使用方式,可以控制模块的可见性和行为,提高代码隔离。 - **Improved Proc and lambda**:Proc对象的行为更接近lambda,特别是在处理块的返回值时。 - **...

    ruby on rails 3.1.0数据库查询方法汇总

    - `Category.where(:name => 'Ruby', :position => 1)`:等价于 SQL 中的 `WHERE name = 'Ruby' AND position = 1`。 - `Category.where(["name = ? OR position = ?", 'Ruby', 3])`:等价于 SQL 中的 `WHERE name...

    elk(都是6.2.4重点-版本2-收集nginx日志-无filebeat

    match => { "message" => "%{COMBINEDAPACHELOG}" } } date { match => [ "timestamp", "dd/MMM/YYYY:HH:mm:ss Z" ] } } output { redis { host => "192.168.171.131" port => 6379 data_type => "list" ...

    weather_api

    请求速率限制限制=> Rack :: Attack 如何为每日API请求限制运行测试=> curl -I -s“ ” | grep HTTP / curl -I -s“ ” | grep HTTP / 要运行10000个请求,我花了1个小时3分钟。 因此,为了简化测试,请执行此操作...

    puppet-ssh:用于SSH服务器和客户端的Puppet模块

    在默认服务器选项参数中设置了以下选项AuthorizedKeysFile => .ssh / authorized_keys UsePAM =>是子系统=> sftp internal-sftp 密码验证=>是ChallengeResponseAuthentication =>否GSSAPIAuthentication =>是...

    Ruby - NetHTTP实现短信验证码注册登录完整示例:Ruby - NetHTTP.rb和附件说明.rar

    req.set_form_data('phone' => phone_number, 'key' => api_key, 'action' => 'send') res = http.request(req) if res.is_a?(Net::HTTPSuccess) puts "验证码已发送至 #{phone_number}" else puts "发送...

    最小价格键nyc01-seng-ft-060721

    ikea = { :chair => 25 , :table => 85 , :mattress => 450 } key_for_min_value ( ikea ) # => :chair veggies = { "apple" => - 45 , "banana" => - 44.5 , "carrot" => - 44.9 } key_for_min_value ( veggies ) ...

    key-for-min-value-onl01-seng-pt-052620

    ikea = { :chair => 25 , :table => 85 , :mattress => 450 } key_for_min_value ( ikea ) # => :chair veggies = { "apple" => - 45 , "banana" => - 44.5 , "carrot" => - 44.9 } key_for_min_value ( veggies ) ...

    最小价值键v-000

    ikea = { :chair => 25 , :table => 85 , :mattress => 450 } key_for_min_value ( ikea ) # => :chair veggies = { "apple" => - 45 , "banana" => - 44.5 , "carrot" => - 44.9 } key_for_min_value ( veggies ) ...

    key-for-min-value-online-web-prework

    ikea = { :chair => 25 , :table => 85 , :mattress => 450 } key_for_min_value ( ikea ) # => :chair veggies = { "apple" => - 45 , "banana" => - 44.5 , "carrot" => - 44.9 } key_for_min_value ( veggies ) ...

    key-for-min-value-online-web-sp-000

    ikea = { :chair => 25 , :table => 85 , :mattress => 450 } key_for_min_value ( ikea ) # => :chair veggies = { "apple" => - 45 , "banana" => - 44.5 , "carrot" => - 44.9 } key_for_min_value ( veggies ) ...

    plock:'p { 1 + 1 }` 打印“(1 + 1) #=> 2”。 就这样

    'p { 1 + 1 }` 打印“(1 + 1) #=> 2”。 就这样。用法通过 gem install 命令安装后,用你的 Ruby 尝试 sample/sample.rb。 你很快就能得到它。已知错误重要提示: Plock 依赖于 (到目前为止),它有一个很大的限制...

    ruby-conversocial

    client = Conversocial::Client.new :key => '...', :secret => '...', :logger => Logger.new(STDOUT)另一个选项是cache_expiry选项。 如果设置(默认情况下未设置),则客户端将缓存api请求。 如果您要限制速率,...

    puppet-confinelibs:基于库(Gems)限制木偶提供程序

    confine :libs => "simple-graphite" Ruby 1.9+ JSON样式 confine libs: "simple-graphite" 多个库 confine :libs => ["openstack", "slackcat"] 相当于: confine :libs => "openstack" confine :libs => ...

    firewall_constraint:通过 IP 白名单限制 Rails 3 路由

    防火墙约束 Rails 3+4 路由约束的简单白名单防火墙 gem 'firewall_constraint'或者: gem install firewall_constraint##例子配置/routes.rb: get 'dummy/index' => 'dummy#index'get 'dummy/blocked_by_inline' ...

    mruby-virtualing:创建监狱环境、限制资源、分配IP地址和分离文件系统

    虚拟化(mruby-virtualing) virtualing 是一个轻量级的 Linux 进程虚拟化工具。 创建监狱环境、限制资源、分配IP地址和分离文件系统 使用 安装监狱 见 构建虚拟化 rake ... : cpu_quota => 3000

    mysql_yearweek:用于获取与 MySQL 函数等效的 yearweek 值的 Ruby gem

    安装 $ gem install mysql_yearweek示例用法 > require mysql_yearweek=> true> MySQLYearweek.yearweek(Date.new(2013, 07, 25))=> "201330"> MySQLYearweek.yearweek(Date.new(2013, 07, 25), 2)=> "201329"限制这...

    puppetlabs-mysql:MySQL Puppet模块清单+类型和提供程序

    MySQL的 目录 限制-操作系统兼容性等 开发-贡献模块指南 模块说明 mysql模块安装,配置和管理MySQL服务。 该模块管理MySQL的安装和配置,以及扩展Puppet以允许管理MySQL资源,例如... override_options => $over

    garethr-rocket:使用 Puppet 安装和管理 Rocket 容器运行时

    version => ' 0.1.0 ' , } 安装后,您可以使用以下两种定义的类型来构建图像并在 Rocket 下运行应用程序。 rocket::image { 'hello.aci' : source => ' /vagrant/hello ' , output_dir => ' /vagrant ' , } ...

Global site tag (gtag.js) - Google Analytics