~_~学习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入门教程中文PDF 附实例”都将是你宝贵的参考资料。通过学习,你不仅可以掌握Ruby的基础知识,还能体验到编程的乐趣和效率。
Ruby入门学习案例(任务)
通过深入学习这些内容,初学者不仅可以掌握Ruby的基础,还能熟悉Rails的开发流程,进一步提升Web开发能力。同时,不断实践和阅读优秀的源码是提升编程技能的关键,因此这份资料包对于Ruby学习者而言无疑是宝贵的财富...
《Ruby基础教程(第5版)》是一本由日本...总的来说,《Ruby基础教程(第5版)》是一本全面、易懂且充满乐趣的Ruby学习资料,无论你是编程新手还是希望深入理解Ruby的开发者,都可以通过这本书开启或深化你的Ruby之旅。
这个“ruby基础学习资料”压缩包很显然是为那些想要入门或者深入理解Ruby的人准备的。让我们详细探讨一下Ruby的基础知识。 1. **变量与数据类型**: Ruby支持五种基本的数据类型:符号(Symbol)、字符串(String...
排班精美,图文清晰。是市面上最适合初学者入门的 Ruby 教程,由 ruby 创始人亲自编写。...本书适合Ruby初学者学习参考, 有一定Ruby编程基础的读者若想再回顾一下Ruby的各知识点, 本书也能提供不少帮助。
这本书“Ruby入门到精通”显然旨在引导初学者逐步掌握Ruby语言。以下是一些关键知识点,它们可能是书中涉及的内容: 1. **基础语法**:包括变量(本地、实例、类和全局变量)、常量、符号、字符串、数字、数组和...
在学习Ruby的过程中,你还需要了解一些工具,如Ruby的解释器irb(交互式Ruby环境)和ri/rdoc(Ruby文档工具),它们有助于调试和理解代码。版本管理工具如RVM(Ruby Version Manager)和rbenv可以帮助你管理多个Ruby...
总的来说,这份Ruby入门教程应该能帮助初学者建立起对Ruby语言的全面认识,从基础语法到高级特性,再到实际开发中的工具使用,为进入Ruby世界提供了一条清晰的学习路径。通过深入学习和实践,读者将能够运用Ruby进行...
《Ruby入门书籍》可能是一本详细介绍Ruby编程语言的基础教程。根据提供的文件名,我们可以推测这本书籍可能包含了两个部分:中文文档和"The Ruby Way"的翻译或解读。 "ruby中文文档.chm"可能是对Ruby语言的中文详细...
在二十分钟的Ruby入门教程中,我们将快速浏览Ruby的基础知识,包括语法、数据类型、控制结构以及简单的类定义。 首先,让我们从Ruby的基本语法开始。Ruby的注释以`#`字符开始,一直持续到行尾。例如: ```ruby # 这...
Ruby的学习资源丰富多样,包括书籍、在线教程、社区论坛等,帮助初学者和进阶者深入理解其语法特性、编程思想以及实践应用。 "trap.chm"文件可能是一个帮助文档,通常用于存储各种信息和指南。在Ruby学习中,这样的...
《Ruby语言入门教程v1.0》是一份详尽的指南,旨在为初学者提供一个易于理解的Ruby语言学习路径。下面,我们将深入探讨该教程所涵盖的关键知识点,特别是其标题和描述中提及的核心概念。 ### 1. 编程语言的发展简史 ...
学习这些基础概念是理解Ruby编程的关键。通过`ruby-4-variables.mp4`和`ruby-5-variables-rules.mp4`,你可以深入理解变量的用法和规则,而`ruby-6-expression.mp4`将帮助你掌握如何在Ruby中构建和使用表达式。这些...
Ruby基础语法经典学习PPT教程. 网上关于ruby的PPT教程不太多,这个个人觉得还可以。
标题中的“Python & Ruby 学习”表明了这个压缩包文件包含了与这两种编程语言学习相关的资源。Python 和 Ruby 都是流行的高级编程语言,广泛应用于Web开发、数据分析、自动化脚本等多个领域。以下是对这两个语言的...