找回密码
 点一下
查看: 3497|回复: 10

呃,Galaxy里一个奇怪但重要的问题……  (null=="")

[复制链接]
发表于 2010-3-2 20:24:27 | 显示全部楼层 |阅读模式
刚才写的那教程里我一开始写错了一处地方,但很快就发现了。

http://bbs.islga.org/read-htm-tid-38662.html
这个教程里我最初这样写

null分两种,一种可以用UIDisplayMessage来输出,另一种用UIDisplayMessage的话会出错。

这句话其实说错了,null用UIDisplayMessage来输出都会出错。那我一开始为什么说出这么句话呢?

那是因为从某种程度上讲这句话也对,因为在galaxy里。

null==""

令人意外的是,这个表达式的结果为真……

那么是不是说在galaxy里,null和""是同一个东西呢?这又不对,因为""可以通过UIDisplayMessage来输出,只是什么都不显示而已,而null无法通过UIDisplayMessage来输出,尝试输出的话会提示错误。

因此看来,galaxy只是强制修改了==号的意义,让它对null==“”这种特殊情况返回真。

之所以有意要这样可能是跟对xml的读取有关,当xml数据文件中某个元素的值被赋为""时,认为它是null之类的……

以下是我的一些测试。


""==""
通过
null==null
通过
null==""
通过
""==null
通过
string str=null
str==""
通过
string str=""
str==null
通过

除非这样写

point targ=null
targ==""

将null赋给string以外的类型的变量,然后再比较,那么才会导致错误,脚本无法继续执行。
显然这里优先判断了等号两边的类型是否一致。

这样看来,当直接写null==""的时候,null是被认为和等号另一边的数据的类型一样的/
发表于 2010-3-2 21:27:13 | 显示全部楼层
头目热血状态了. 好多年没看到!
回复

使用道具 举报

发表于 2010-3-2 21:43:45 | 显示全部楼层
空字符串和不存在字符串???
galaxy里的字符串还会像魔兽那样哗啦啦的漏么?
回复

使用道具 举报

发表于 2010-3-2 22:55:56 | 显示全部楼层
有个问题请教下,我怎么不能输出中文字符?
回复

使用道具 举报

发表于 2010-3-2 23:10:59 | 显示全部楼层
要开zhCN才能出中文字符吧
回复

使用道具 举报

发表于 2010-3-2 23:16:29 | 显示全部楼层

回 4楼(小药) 的帖子

什么意思,你是指要用中文版星际2?
回复

使用道具 举报

 楼主| 发表于 2010-3-3 01:04:39 | 显示全部楼层
只要输入法靠谱就能打中文。

这是一输入法的问题
回复

使用道具 举报

发表于 2010-3-3 07:50:05 | 显示全部楼层
哦,我指的是好像TriggerDebugOutput和UIDisplayMessage显示不了中文,不知道你们有没有这样的问题。
回复

使用道具 举报

 楼主| 发表于 2010-3-3 12:42:18 | 显示全部楼层
唔,试试看改换编码。
回复

使用道具 举报

发表于 2010-3-11 01:06:16 | 显示全部楼层
"" == 0(byte)
null == 0(byte)
回复

使用道具 举报

 楼主| 发表于 2010-3-11 01:16:15 | 显示全部楼层
在galaxy里null和""保存方式是不同的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-5-5 04:16 , Processed in 0.099391 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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