设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2285|回复: 2

[已经解决] 【Ruby】when的判断与==的区别

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1024
在线时间
1389 小时
注册时间
2010-8-9
帖子
3471
发表于 2015-1-29 00:43:32 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 寒冷魔王 于 2015-1-29 00:45 编辑

如下代码:
  1. data = Array.new
  2. case data.class
  3. when Array
  4.   puts "OK in When Class"
  5. end
  6. p data.class == Array

  7. array = [0,0]
  8. case array
  9. when [0,0]
  10.   puts "OK in When Array"
  11. end
  12. p array == [0,0]
复制代码
结果:
  1. true
  2. OK in When Array
  3. true
复制代码
该代码在Ruby 2.2.0 on Linux下测试。
SRPG on RM 项目研发组 正式成立。目前SRPG·RMVA系统进度88.8%。SMRC Kernel 进度90%
↖(^ω^)↗热烈庆祝~SMRC Ver5.1 SRPG战棋地图移动范围生成脚本正式发布~~
-----------------------------------------------------------------------------------------
SMRC具有高性能、高兼容、定制自由、使用方便的特点。
1.性能,100移动力轻松算出,无压力;
2.兼容,RGSS1-3通吃,效率保证;
3.支持移动形状定制,支持4方位、6方位、正方形或其他任意有移动规律的形状;
4.可以充当高性能寻路来使用。
【链接点此】
-----------------------------------------------------------------------------------------
【2016/01/06更新 | 改版】RM脚本编辑器Gemini
-----------------------------------------------------------------------------------------

Lv4.逐梦者 (版主)

梦石
0
星屑
9467
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

发表于 2015-1-29 09:21:32 | 显示全部楼层
本帖最后由 RyanBern 于 2015-1-29 09:24 编辑

case~when进行判断利用的运算符为'===',不是'=='
  1. case data
  2. when Array
  3.   puts "OK"
  4. end
复制代码
默认情况下,'==='的含义和'=='相同,但是如果进行了重新定义,二者含义不同。
对于Class类的对象,'==='的含义发生改变。
self === other和other.is_a?(self)功能类似
所以那样用case~when是不对的。

点评

加上反而不对了233  发表于 2015-1-30 10:56
帮你省了一个 .class 你看 Ruby 多良心(pia  发表于 2015-1-30 10:36
这样啊,谢谢~  发表于 2015-1-29 10:09

评分

参与人数 1星屑 +200 收起 理由
恐惧剑刃 + 200 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9273
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

发表于 2015-1-30 10:05:38 | 显示全部楼层
我一直以为when和==的区别就是
x=rand(5)

case x
when 0,1,2,3
p 520
end

if x==0 or x==1 or x==2 or x==3
p 520
end
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-3-29 07:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表