![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Ruby
CbdFocus
耐心是美德。
展开
-
Ruby Block demo
def my_m yield(2) endx = 1 my_m do |x| puts x end puts x输出: 2 1原创 2015-07-26 21:16:46 · 236 阅读 · 0 评论 -
Ruby 去掉结尾空格
有几个方法可选 strip() #对字符串中间的空白不做任何处理 irb(main):012:0> " \tHello \n world.\r\n ".strip => "Hello \n world." irb(main):013:0> " \tHello \n world.\r\n ".lstrip => "Hello \n world.\r\n " irb(main):014:0>原创 2015-07-24 14:56:05 · 2435 阅读 · 0 评论 -
用method_missing 实现的 OpenStruct
功能类似一个dict类,map[“abc”] = “aabbcc”; 直接就往map这个dict中添加了一个『abc』——『aabbcc』这个键值对。用method_missing来实现,MyOpenStruct类相当于这个dict类,直接往里塞实例方法和其对应的值。class MyOpenStruct def initialize @attributes = {} end def原创 2015-07-24 14:29:34 · 384 阅读 · 0 评论 -
ruby 类也是对象
自定义一个MyClass类,它继承自Object类,Object又继承自BaseObject。 obj1,obj2,obj3分别是MyClass的实例对象,MyClass是Class的实例对象。差别是obj1的名字是变量『小写字母』,MyClass是常量『大写字母』。 Class可以理解为继承自Model,比Model多了new(),allocate()和superclass()等方法来构建继承结构原创 2015-07-23 16:02:11 · 312 阅读 · 0 评论 -
Ruby gsub() gsub!()
gsub()第一个参数是reg,第二个参数是被替换的字符。 返回更改的字符串,对原字符串无副作用。 没有匹配会返回原字符串。irb(main):001:0> str = "regWord" => "regWord" irb(main):002:0> str.gsub(/W/,'w') => "regword" irb(main):003:0> str => "regWord"gsub!()有匹配原创 2015-07-23 13:23:43 · 2251 阅读 · 0 评论 -
Ruby debug
ruby 非常酷炫的debug工具pry。 可以在想要断点的位置加入“binding.pry”,程序会在这里暂停,允许你在命令行里对已有对象进行操作。require "pry"a = [1, 2, 3] a << 4 binding.pry # execution will pause here, allowing you to inspect all objects a << 5 put原创 2015-07-22 17:35:04 · 574 阅读 · 0 评论 -
Ruby 判断是否空 empty? nil?
empty? 对象的值是否为空 nil? 对象本身是否为空rb(main):015:0> ''.empty? => true irb(main):016:0> ' '.empty? => false irb(main):017:0> "".empty? => true irb(main):018:0> " ".empty? => false irb(main):019:0> nil.empty?原创 2015-07-20 14:44:28 · 7955 阅读 · 0 评论 -
Ruby 第一行代码
main.rb#=猜数字 #这是一个简单的猜数字游戏 #==玩法 #随机生成一个『1,100』的自然数,会提示大小class GuessNum def playGame wrongInt = true c = 0 num = rand 100 while wrongInt c+=1 puts "请输入您猜测的数字『0~100』"原创 2015-07-19 12:29:03 · 661 阅读 · 0 评论 -
Ruby 常量作用域
特殊情况『1』内部类不会自动引用其外部类的父类# Info = "顶层info"class Father Info = "父类Info" # puts Info endclass Son < Father # Info = "子类Info" # puts Info class Inner # Info = "内部类Info" puts Info end end原创 2015-07-19 13:06:39 · 549 阅读 · 0 评论 -
Ruby 比较方法
转自:http://wongyouth.com/blog/2014/07/05/variations-of-equal-method-in-ruby/ Ruby里面有4种比较方法,equal?, eql?, ==, ===,而且在不同的类里面表现的很不一样。在使用的时候也特别容易搞糊涂。 这篇博文将演示一些代码来讲解各个方法。== - 类意义上的 相等,需要每个类自己定义实现在特定类中觉得两个对象是转载 2015-07-15 11:35:36 · 295 阅读 · 0 评论 -
ruby gem关系可视化
新建测试项目rails new app查看Gemfile.lock截取部分,文件根据空格缩进来表示依赖层级。GEM remote: https://rubygems.org/ specs: actionmailer (4.2.3) actionpack (= 4.2.3) actionview (= 4.2.3) activejob (= 4.2.原创 2015-07-26 16:43:55 · 406 阅读 · 0 评论 -
ruby 方法调用的一小点
定义self.method,在之后就可以直接用类名来调用方法了,类似Java的static方法。 include的先后顺序是有意义的,『这里不同于Java的import,Java的import顺序无关』先include的module会在ancestor树的上方,更靠近BasicObject。 module My_a def self.dosth puts "This is A do st原创 2015-07-24 11:41:48 · 293 阅读 · 0 评论