• Ruby小例子


    1.ruby定义函数与执行函数案例

    def fact(n)  if n == 0   1  else   n * fact(n-1)  end end
    
    print fact(4)

    结果: 24

    2.一个小例子

    words = ['a','b','c'] secret = words[rand(3)] print "guess?
    " while guess = STDIN.gets  guess.chop!  if guess==secret   print "You win!
    "   break  else   print "Sorry,you lose.
    "  end  print "guess?
    " end print "The word was ",secret,"
    "

    结果: guess? a Sorry,you lose. guess? b You win! The word was b

    3.流程控制 #注释

    def checknum(i) case i when 1..5  print "1..5
    " when 6..10  print "6..10
    " end end checknum(8)

    结果: 6..10

    4.for循环 #注释

    def loopnum(a,z)  for num in("#{a}".."#{z}")   print num,"
    "  end end loopnum(1,9)

    结果: 1 2 3 4 5 6 7 8 9

    5.类的演示 #注释

    class Dog  def speak   print "Bow Wow
    "  end end
    
    dogobj = Dog.new dogobj.speak

    结果: Bow Wow

    6.继承 #注释

    class Dog
        def speak
            print "Bow Wow
    "
        end
    end
    
    class SpottyDog<Dog
        def wash
            print "Wash my spotty
    "
        end
    end
    
    
    spotty = SpottyDog.new
    spotty.speak
    spotty.wash
    结果:
    Bow Wow
    Wash my spotty

    可以砍掉一些不需要的方法

    class Dog
        def speak
            print "Bow Wow
    "
        end
    end
    
    
    class RobotDog<Dog
        def speak
            fail "Sorry.I cant speak"
        end
    end
    
    
    robot = RobotDog.new
    robot.speak

    结果: 会报错Sorry.I cant speak

    7.重载方法 #注释

    class Human  def identify   print "I'm a person.
    "  end  def train_toll(age)   if age<12    print "Reduced fare.
    "   else    print "Normal fare.
    "   end  end end Human.new.identify
    
    class Student1<Human  def identify   print "I'm a student.
    "  end end Student1.new.identify
    
    class Student2<Human  def identify   super   print "I'm a student.
    "  end end Student2.new.identify
    
    class Dishonest<Human  def train_toll(age)   super(11)#不诚实的孩子  end end Dishonest.new.train_toll(25)
    
    class Honest<Human  def train_toll(age)   super(age)#不诚实的孩子  end end Honest.new.train_toll(25)

    结果: I'm a person. I'm a student I'm a person. I'm a student Reduced fare. Normal fare.

  • 相关阅读:
    二进制数组
    model模块
    Decorator [ˈdekəreɪtə(r)] 修饰器/装饰器 -- 装饰模式
    箭头函数
    async [ə'zɪŋk] 函数
    cocos2d-x 事件分发机制 ——触摸事件监听
    算法:高速排序
    [zlib]_[0基础]_[使用Zlib完整解压zip内容]
    设计模式之状态模式(State)摘录
    编写Web Serviceclient訪问www.webxml.com.cn提供的服务
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/3516699.html
Copyright © 2020-2023  润新知