请问ruby中 <=>是什么意思?

Python013

请问ruby中 <=>是什么意思?,第1张

这是ruby里“宇宙飞船运算符”。

运算符的左边和右边相比较,左边小于右边返回负数,相等返回0,大时返回正数。

宇宙飞船运算符主要用于排序。对元素的大小进行判定。

1.print不自动换行,puts会自动换行,一行不够写的话,可以加"\"进行连接

ruby 代码

puts 6/2

print 6/1

puts 'hello world'

puts '我们都是'\

'中国人'

运行结果:

ruby 代码

3

6hello world

我们都是中国人

2.==,eql?,equal? 区别

==值相等 eql?值相等,类型相等 equal?值相等,内存地址相等

ruby 代码

a=1

b=1.0

c=1.0

d=1.0

e=c

puts(a==b)#值相等

puts(a.eql?(b)) #值相等,类型相等

puts(c.equal?(d))#值相等,内存地址相等

puts(c.equal?(e))

运行结果:

ruby 代码

true

false

false

true

3.

#<=>比较2个对象的大小,大于,等于,小于分别返回1,0,-1

#===右边对象是否在左边区域里,返回true或false

ruby 代码

puts("abd" <=>"acd")

puts((0..5) === 10)

puts((0..5) === 3.2)

运行结果:

-1

false

true

4.case 分支条件语句

java 代码

x=3

case x

when 1..2

print "x=",x,",在1..2中"

when 4..9,0

print "x=",x,",在4..9,0中"

else

print "x=",x,",其它可能"

end

输出结果:

x=3,其它可能

5.while与until

注:

A:ruby里的字符串连接用的是逗号(java里用的是加号),如:

puts("aaa","bbb")

print("aaa","bbb")

分别输出为aaa换行bbb,aaabbb

B:ruby里好像没有++,所以a++是错误的,只能a=a+1

ruby 代码

a=1

while( a <10 )

print(a," ")

a=a+1

end

b=1

until( b >= 10 )

print(b," ")

b=b+1

end

输出结果为:

1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9

6. 几个函数说明

print "aa" if i <2

等价于

if i <2

print "aa"

end

ruby 代码

3.times{print "hi"}

1.upto(9){|i| print i if i<7}#|i|可以看成是一个临时的引用变量,供后面使用

9.downto(1){|i| print i if i<7}

(1..9).each{|i| print i if i<7}

0.step(11,3){|i| print i}

运行结果:

hihihi1234566543211234560369

(这部分内容完全是选学的。它需要有一定程度的数学知识才可以,如果你对此没兴趣的话可以直接去下一章节,对于Ruby学习没任何影响。但是可以快速浏览一下这一章节中的 随机数 部分对以后的学习肯定会派上用场的)

关于数字方面使用的方法在数量上与字符串方法几乎一样多(同样的我脑子里也不记得所有的方法)。接下来我们将看到剩下的算术方法、随机数计算器和数学对象,会用到三角函数和超函数方法。 trigonometric and transcendental methods

其余的算术方法是 ** (乘方/取幂)和 % (模数/取余)。如果你想在Ruby中表示5的平方,可以写成5 ** 2。你也可以在乘方中用浮点数,比如你想对5开根号,可以写成5 ** 0.5。取余方法可以得到被一个数除以后的余数:比如我用7被3除,会得到2,余数是1。让我们看看在程序中是如何运行的:

从最后一行我们能够知道一年(非闰年)中有许多个星期外加1天。如果你的生日是今年的星期二,那么下一年生日将会是在周三。在取余中也可以用浮点数。基本上这些方法都会以它们定义的方式运行,稍后我会让你们熟悉这些方法。

在学习随机数之前最后需要提到的方法是 abs 绝对值。它会得到一个数的绝对数值:

Ruby天生就自带有一个相当不错的随机数生成器。得到一个随机数字的方法是 rand 。如果你直接调用 rand ,你会得到一个大于等于0.0至小于1.0之间的浮点数;如果你给 rand 一个整数(以5为例),你将会得到一个大于等于0至小于5的整数(也就是5个可能的数字,从0到4)。

下面让我们在例子中学习 rand :

有时你可能想在程序运行多次的情况下能在同一个位置返回相同的随机数(比如我有一次在一个电脑游戏中用随机数创建一个随机生成的副本,我会喜欢上某个副本,就像再玩一次这个副本或这把这个副本发给一个朋友)这种情况下你需要设置一个随机数种子,这里可以用 srand ,像下面这样:

最后让我们来了解一下数学中的对象。我们可以直接用下面的例子:

从上面可以知道:数学里面包含着你期望一个科学计算器拥有的所有东西。鉴于此,浮点数将会是解决问题的正确答案。

所以接下来我们来学习 流程控制 Flow Control 。