zoukankan      html  css  js  c++  java
  • 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.

  • 相关阅读:
    oracle_深刻理解数据库的启动和关闭
    oracle_利用闪回功能恢复数据
    oracle_五千万数据插入测试
    java_eclipse_svn 与服务器同步时 ,忽略某类型文件和文件夹
    oracle_根据表名拼装语句
    crawler_网络爬虫之数据分析_httpwatcher
    113. Path Sum II (Tree; DFS)
    112. Path Sum (Tree; DFS)
    150. Evaluate Reverse Polish Notation (Stack)
    32. Longest Valid Parentheses (Stack; DP)
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/3516699.html
Copyright © 2011-2022 走看看