`
mynaAo7I
  • 浏览: 12402 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Ruby入门学习之二

    博客分类:
  • Ruby
阅读更多

    ~_~学习Ruby第二天,主要还是基础知识学习。诸如对象、变量、常量、条件、循环、方法、类、模块等的基本表示。

puts("---------------实例方法-----------")
p "10,20,30,40".split(",")
p [1,2,3,4].index(2)
p 1000.integer?
p /Ruby/ =~ "dsdRuby"
name = ["1","2","3"]
p name[0]
p 1 + 2
puts("---------------类方法-----------")
p Time.new
p Array.new
p Array["a","b","c"]
puts("---------------函数性方法-----------")
p Math.sin(100)
p sleep(1)
print "d\n"
puts("---------------定义方法-----------")
def hello(a,b)
  a + b
end
p hello(1,2)

def hello(a,b=3)       #可以在方法的定义中加入预设值
  a + b
end
p hello(1,5)
def max(a,b)
  if a > b
    print(a,">",b,"\n")
  elsif a == b
    print(a,"=",b,"\n")
  else 
    print(a,"<",b,"\n")
  end
end
max(1,1)
max(1,2)
max(2,1)

 

puts("---------------if &&和||-----------")
x = 5
if x > 6 && ((y = x) < 10)# && 的用法
  print(y,"&&\n")
end
if x > 6 || ((y = x) < 10)
  print(y,"||\n")
end

a = 1
b = 2
if a == b
  print "a=b\n"
elsif a > b
  print "a>b\n"
else 
  print "a<b\n"
end

print x,"\n" if x > 3

puts("---------------unless-----------")
unless a == b
  puts "a!=b"
else
  puts "a=b"
end
puts("---------------case-----------")
tags = ["P","A","I","IMG"]
tags.each{|tag|
  case tag
  when "C","A","B"   #when允许有多个值匹配
    print tag," has child\n"
  when "I","IMG"
    print tag," has no child\n"
  else
    print tag," can not be used\n"
  end
}

array = ["1",1,nil]
array.each{|a|
  case a 
  when Numeric
    print a," is a number\n"
  when String
    print a," is a String\n"
  else 
    print a," is a something\n"
  end
}

while line = gets
  case line
  when /ruby/i
    print(line," find ruby\n")
  when /bub/i
    print(line," find bub\n")
  else
  end
end

puts("---------------===-----------")
=begin 
===用法,可以理解为属于
=end
p (1..3) === 4
p /zz/ === "sszzy"
p String === "2"
p Numeric === 2

 

puts("---------------times-----------")
5.times{|i|
  print("第",i+1,"个ruby\n")
}
puts("---------------for-----------")
for i in 1..5
  print("第",i,"个ruby\n")
end

for name in ["1","2","3","4","5"]
  print("第",name,"个ruby\n")
end
puts("---------------while-----------")
sum = 5
while sum > 0
  print("第",6-sum,"个ruby\n")
  sum -= 1
end
puts("---------------until-----------")
sum = 5
until sum <= 0
  print("第",6-sum,"个ruby\n")
  sum -= 1
end
puts("---------------each-----------")
(1..5).each{|i|
  print("第",i,"个ruby\n")
}
puts("---------------loop-----------")
=begin
loop{
  print("ruby\n")#loop一直执行
}
=end
puts("---------------break next redo-----------")
i = 0
["phthon","ruby","perl"].each{|name|
  i += 1
  if i == 2
    break  #立刻停止循环
  end
  print(i,name,"\n")
}

i = 0
["phthon","ruby","perl"].each{|name|
  i += 1
  if i == 2
    next  #跳到下次循环
  end
  print(i,name,"\n")
}

i = 0
["phthon","ruby","perl"].each{|name|
  i += 1
  if i == 2
    redo  #重新进行本次循环
  end
  print(i,name,"\n")
}

 

puts("-----------------------class--------------------")
ary = Array.new
p ary                 #=>[]
p ary.class           #=>Array
str = "dsds"
p str.class           #=>String

p str.instance_of?(String)  #=>true
p str.instance_of?(Array)   #=>false
p str.is_a?(String)         #=>true
p str.is_a?(Object)         #=>true
puts("-----------------------自定义class--------------------")
class HelloWorld
  Version = 1.0				#常量
  @@count = 0				#类变量
  attr_accessor :name			#相当于java中的getter与setter方法
  def initialize(name = "Ruby")		#初始化方法,相当于构造方法
    @name = name
    @@count += 1
    print @@count," 初始化方法\n"
  end

  def HelloWorld.hi(name)
    print name," 类方法\n"
  end
  def hello
    print @name," 实例方法\n"
  end

end
bob = HelloWorld.new("Bob")
jim = HelloWorld.new("Jim")
bob.hello
jim.hello
puts bob.name
bob.name = "Lucy"
puts bob.name
HelloWorld.hi("Ruby")
puts HelloWorld::Version

class String				#扩充类
  def count_word
    ary = self.split(/\s+/)
    return ary.size
  end
end
p "This is a big mistake".count_word

class RingArray < Array			#继承类
  def [](i)
    super(i % size)
  end
end
str = RingArray["0","1","2","3","4","5"]
p str[6]
p str[-1]
p str[3]

class AccTest
  def pub
    puts "pub方法"
  end
  public :pub
  def pri
    puts "pri方法"
  end
  private :pri

end
ac = AccTest.new
p ac.pub
#p ac.pri				#错误

class Point				#protected
  attr_accessor :x , :y
  protected :x= , :y=
  def initialize(x = 0.0 , y = 0.0)
    @x = x
    @y = y
  end
  def swap(other)
    xtemp = @x
    ytemp = @y
    @x = other.x
    @y = other.y
    other.x = xtemp
    other.y = ytemp
    self
  end
end

p0 = Point.new
p1 = Point.new(1,1)
p p0
p p1
p0.swap(p1)
p p0
p p1


 

puts("-----------------------module--------------------")
p Math::PI
module HelloModule
  Version = 1.0
  def hello(name)
    puts name
  end
  module_function :hello
end
p HelloModule::Version
HelloModule.hello("d")
include HelloModule
hello(1)
p Version

    以上为今天写的一些很基础很基础的东西,其实需要注意的细节有很多。主要还是先过一遍,到需要用到的时候再翻书也不迟。:)

分享到:
评论

相关推荐

    Ruby基础和特点,Ruby入门学习资料.pdf

    Ruby基础和特点,Ruby入门学习资料.pdf

    Ruby入门教程中文PDF 附实例

    总之,无论你是对编程感兴趣的新手,还是想扩展技能树的开发者,这份“Ruby入门教程中文PDF 附实例”都将是你宝贵的参考资料。通过学习,你不仅可以掌握Ruby的基础知识,还能体验到编程的乐趣和效率。

    Ruby入门学习案例.md

    Ruby入门学习案例(任务)

    ruby学习的源码

    通过深入学习这些内容,初学者不仅可以掌握Ruby的基础,还能熟悉Rails的开发流程,进一步提升Web开发能力。同时,不断实践和阅读优秀的源码是提升编程技能的关键,因此这份资料包对于Ruby学习者而言无疑是宝贵的财富...

    Ruby基础教程(第5版)1

    《Ruby基础教程(第5版)》是一本由日本...总的来说,《Ruby基础教程(第5版)》是一本全面、易懂且充满乐趣的Ruby学习资料,无论你是编程新手还是希望深入理解Ruby的开发者,都可以通过这本书开启或深化你的Ruby之旅。

    ruby基础学习资料

    这个“ruby基础学习资料”压缩包很显然是为那些想要入门或者深入理解Ruby的人准备的。让我们详细探讨一下Ruby的基础知识。 1. **变量与数据类型**: Ruby支持五种基本的数据类型:符号(Symbol)、字符串(String...

    ruby基础教程(中文第四版).epub

    排班精美,图文清晰。是市面上最适合初学者入门的 Ruby 教程,由 ruby 创始人亲自编写。...本书适合Ruby初学者学习参考, 有一定Ruby编程基础的读者若想再回顾一下Ruby的各知识点, 本书也能提供不少帮助。

    ruby入门到精通

    这本书“Ruby入门到精通”显然旨在引导初学者逐步掌握Ruby语言。以下是一些关键知识点,它们可能是书中涉及的内容: 1. **基础语法**:包括变量(本地、实例、类和全局变量)、常量、符号、字符串、数字、数组和...

    ruby中文教程,从基础到深入的让你学习ruby

    在学习Ruby的过程中,你还需要了解一些工具,如Ruby的解释器irb(交互式Ruby环境)和ri/rdoc(Ruby文档工具),它们有助于调试和理解代码。版本管理工具如RVM(Ruby Version Manager)和rbenv可以帮助你管理多个Ruby...

    Ruby相关入门教程网址

    总的来说,这份Ruby入门教程应该能帮助初学者建立起对Ruby语言的全面认识,从基础语法到高级特性,再到实际开发中的工具使用,为进入Ruby世界提供了一条清晰的学习路径。通过深入学习和实践,读者将能够运用Ruby进行...

    ruby入门书籍

    《Ruby入门书籍》可能是一本详细介绍Ruby编程语言的基础教程。根据提供的文件名,我们可以推测这本书籍可能包含了两个部分:中文文档和"The Ruby Way"的翻译或解读。 "ruby中文文档.chm"可能是对Ruby语言的中文详细...

    二十分钟Ruby入门教程

    在二十分钟的Ruby入门教程中,我们将快速浏览Ruby的基础知识,包括语法、数据类型、控制结构以及简单的类定义。 首先,让我们从Ruby的基本语法开始。Ruby的注释以`#`字符开始,一直持续到行尾。例如: ```ruby # 这...

    关于ruby学习的资料

    Ruby的学习资源丰富多样,包括书籍、在线教程、社区论坛等,帮助初学者和进阶者深入理解其语法特性、编程思想以及实践应用。 "trap.chm"文件可能是一个帮助文档,通常用于存储各种信息和指南。在Ruby学习中,这样的...

    Ruby语言入门教程v1.0

    《Ruby语言入门教程v1.0》是一份详尽的指南,旨在为初学者提供一个易于理解的Ruby语言学习路径。下面,我们将深入探讨该教程所涵盖的关键知识点,特别是其标题和描述中提及的核心概念。 ### 1. 编程语言的发展简史 ...

    Ruby 基础语法 视频教程1

    学习这些基础概念是理解Ruby编程的关键。通过`ruby-4-variables.mp4`和`ruby-5-variables-rules.mp4`,你可以深入理解变量的用法和规则,而`ruby-6-expression.mp4`将帮助你掌握如何在Ruby中构建和使用表达式。这些...

    Ruby基础语法经典学习PPT教程

    Ruby基础语法经典学习PPT教程. 网上关于ruby的PPT教程不太多,这个个人觉得还可以。

    Python & Ruby 学习

    标题中的“Python & Ruby 学习”表明了这个压缩包文件包含了与这两种编程语言学习相关的资源。Python 和 Ruby 都是流行的高级编程语言,广泛应用于Web开发、数据分析、自动化脚本等多个领域。以下是对这两个语言的...

Global site tag (gtag.js) - Google Analytics