zoukankan      html  css  js  c++  java
  • [ror]如何给字符串添加nil_or_empty? 方法

    ror中判断一个字符串是否null或者空字符串,目前没有一个已知的方法,只能分别判断

    s = ''
    puts "blank" if s.nil? || s.empty?

    那么如何自己添加这个方法呢? 对于熟悉ruby的同学,这个非常简单,只需要打开类,添加方法,用之前引用一下就好了

    class String 
       def nil_or_empty?
         return true if self.nil?
         return true if self.empty?
         false
      end
    end

    下面测试一下

    irb(main):008:0> s='';s.nil_or_empty?
    => true
    irb(main):009:0> s=nil;s.nil_or_empty?
    Traceback (most recent call last):
            1: from (irb):9
    NoMethodError (undefined method `nil_or_empty?' for nil:NilClass)
    irb(main):010:0>

    等等,好像哪里不对!因为ruby时动态语言,s赋值nil,那他暂时就是NilClass,所以,没有nil_or_empty?方法! 还需要给NilClass添加nil_or_empty?

    class NilClass
      def nil_or_empty?
         true
      end
    end

    由于NilClass只可能时nil,所以方法直接返回true,再次测试搞定!

    irb(main):016:0> s=nil;s.nil_or_empty?
    => true
    irb(main):017:0> s='nil';s.nil_or_empty?
    => false
    irb(main):018:0> s='';s.nil_or_empty?
    => true

    将两个打开类保存到一个文件lib/nil_or_empty.rb, 然后再config/boot.rb中添加语句

    load 'lib/nil_or_empty.rb'

    好了,现在在我们的项目中,可以随便在哪里都能使用自己的方法nil_or_empty?了^_^

  • 相关阅读:
    MVC 添加多属性 HtmlHelper htmlAttributes
    centos 下安装mysql ,可惜版本只是5.1
    win7 远程桌面连接centos 6.5
    Linux Centos 6.6搭建SFTP服务器
    mysql 任意连接
    一些常用的Bootstrap模板资源站
    asp.net解决高并发的方案.
    LoadRunner
    LoadRunner
    经典SQL语句大全
  • 原文地址:https://www.cnblogs.com/dajianshi/p/14036009.html
Copyright © 2011-2022 走看看