博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ruby入门——简介&基本概述
阅读量:5089 次
发布时间:2019-06-13

本文共 2183 字,大约阅读时间需要 7 分钟。

Ruby:

Ruby中,一切都是对象,数值、字符串、正则表达式、输入输出、数据库的连接,甚至类本身都是对象。

对象

1. 保有自己的身份

在Ruby中可以使用object_id方法来取得对象的唯一号码。而且Ruby中所有的对象都属于某个类。

对象可以通过调用class方法来确认。

2. 可以接收信息

信息可以被传递给对象。对象接收了信息后,就会运行相应的方法来进行某种处理。从这个意义上说,”信息传递”也被称为“方法调用”

3. 保有内部状态

对象具有0个以上的内部状态。例如,字符串会将其长度作为内部状态来保存,并会在方法的执行过程中发生变化。

str1 = "abcdef"str2 = "abcdef"#获取对象idp str1.object_idp str2.object_id#str1所属的类p str1.class#数字1所属的类p 1.class#内容相同,则返回truep str1 == str2#内容相同,但是不是同一个对象,返回falsep str1.equal? (str2)#保有内部状态p str1.length#输出结果#15650964#15650952#String#Fixnum#true#false#6

Ruby —— 是一种快速、简单、面向对象的解释型脚本语言.

An example: fact.rb

def fact(n)	if n == 0		1	else		n*fact(n-1)	endend	puts fact(ARGV[0].to_i)

运行:ruby fact.rb 2

#返回 120

运行:ruby fact.rb 50 (计算器中计算时会溢出)

#返回30414093201713378043612608166064768844377641568960512000000000000  --- 正确

当输入命令ruby而不带参数时,它将在标准输入中读入,并在结束输入后执行

C:\Joy\Ruby>rubyputs "Hello World!"^D //Ctrl-DHello World!

Ruby字符串

“”,’’括起来的是Ruby中的字符串

区别:

puts "a\nb\nc"    #输出#a#b#cputs 'a\nb\nc'#输出:a\nb\ncputs "abcd #{4*4} efg"#输出: abcd 16 efgputs 'abcd #{4*4} efg'#输出: abcd #{4*4} efg

字符串操作,比C,Java等语言更灵活

#1.连接字符串puts "foo" + "bar"#输出foobar#2.重复字符串puts "foo" * 2#输出foofoo#3.获取字符串中特定字符herb = "parsley"#从0位(第一个字符)开始,获取1个字符puts herb[0,1]#输出p#从-2位(倒数第2个字符)开始,获取2个字符puts herb[-2,2]#输出ey#输出第0位到第3位的4个字符puts herb[0..3]#输出pars#输出倒数第5位到倒数第2位的4个字符puts herb[-5..-2]#输出rsle

 

Ruby数组

Ruby数组中可以包含不同的对象类型(数据类型)
例如: ary = [1, 2, "3"]

Ruby数组可以被连接或重复

例如: ary = [1, 2, "3"]
ary + ["foo", "bar"]
#ary = [1, 2, "3", "foo", "bar"]

ary * 2

#ary = [1, 2, "3", 1, 2, "3"]

数组索引
ary = [1, 2, "3", 1, 2, "3"]

ary[0]

#输出第一个字符--->1

ary[0,2]

#输出第一个字符开始的2个字符--->1, 2

ary[0..1]

#输出第一个字符和第二个字符--->1, 2

ary[-2]

#输出倒数第二个字符--->2

ary[-2,2]
#输出倒数第二个字符开始的2个字符--->2, "3"

ary[-2..-1]

#输出倒数第二个字符和倒数第一个字符--->2, "3"

 

Hash

h = {1 => 2, "2" => "4"}
{1=>2, "2"=>"4"}

h[1]

2

h["2"]

"4"

结构控制

1) case

i=8case iwhen 1, 2..5 puts "1..5"when 6..10 puts "6..10"end#输出6..10

 

2) while

 

i = 0puts "It's zero."  if i==0 puts "It's negative." if i<0 puts i+=1 while i<3#输出#It's zero.#1#2#3

3) for

for elt in collection
  # ... here, elt refers to an element of the collection
end

for num in (4..6)puts numend#输出#4#5#6

 

转载于:https://www.cnblogs.com/enjoytesting/archive/2012/06/18/2550984.html

你可能感兴趣的文章
ES6内置方法find 和 filter的区别在哪
查看>>
硬件笔记之Thinkpad T470P更换2K屏幕
查看>>
getElement的几中属性介绍
查看>>
设计器 和后台代码的转换 快捷键
查看>>
STL容器之vector
查看>>
数据中心虚拟化技术
查看>>
复习文件操作
查看>>
SQL Server 使用作业设置定时任务之一(转载)
查看>>
第二阶段冲刺-01
查看>>
BZOJ1045 HAOI2008 糖果传递
查看>>
JavaScript 克隆数组
查看>>
eggs
查看>>
python3 生成器与迭代器
查看>>
java编写提升性能的代码
查看>>
list 容器 排序函数.xml
查看>>
《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇03:暂停游戏》
查看>>
CPU,寄存器,一缓二缓.... RAM ROM 外部存储器等简介
查看>>
git .gitignore 文件不起作用
查看>>
Alan Turing的纪录片观后感
查看>>
c#自定义控件中的事件处理
查看>>