查看: 1659|回复: 4

[已经解决] 问一些关于rgss的语法

[复制链接]
梦石
0
星屑
995
在线时间
180 小时
注册时间
2013-2-16
回帖
146
发表于 2013-7-8 18:16:11 来自手机 | 显示全部楼层 |阅读模式

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

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

×
在类中,attr_reader和attr_writer是定义什么的,怎么用?(通俗点,我看f1说什么可读方法什么的,什么意思……)
怎么在一个类中,用另一个类的方法?
a = !a 这个赋值怪怪的,一个变量变成非自身?那它具体会变成什么?
if a != self 如果一个变量不等于自身?变量可以不等于自身?
梦石
0
星屑
660
在线时间
1286 小时
注册时间
2011-6-14
回帖
3949
发表于 2013-7-8 19:15:39 | 显示全部楼层
(最好不要一帖多问
  1. attr_reader :a
复制代码
相当于
  1. def a
  2.   @a
  3. end
复制代码
而
  1. attr_writer :a
复制代码
相当于
  1. def a=(value)
  2.   @a = value
  3. end
复制代码

  1. a = !a
复制代码
如果a是true则a = false,a是false则a = true←取反用

变量当然可以不等于自身,比如$scene != self在Scene_Menu中调用,那么全局变量$scene不等于已经实例化的Scene_Menu时,返回真。

评分

参与人数 1星屑 +84 收起 理由
弗雷德 + 84 我很赞同

查看全部评分

回复

使用道具 举报

梦石
0
星屑
50
在线时间
466 小时
注册时间
2013-2-8
回帖
420
发表于 2013-7-9 08:05:58 来自手机 | 显示全部楼层
本帖最后由 SuperMario 于 2013-7-9 08:08 编辑

self指的是被调用此方法的实例,又不是指变量自身。
回复

使用道具 举报

梦石
0
星屑
1002
在线时间
1270 小时
注册时间
2011-2-14
回帖
5388
发表于 2013-7-9 10:50:44 | 显示全部楼层

一贴多问好讨厌

本帖最后由 R-零 于 2013-7-9 11:14 编辑


在类中,attr_reader和attr_writer是定义什么的,怎么用?(通俗点,我看f1说什么可读方法什么的,什么意思……)
对实变量使用,变成类的只读/只写属性
怎么在一个类中,用另一个类的方法?
用子类的写法 class A < B
a = !a 这个赋值怪怪的,一个变量变成非自身?那它具体会变成什么?
这个方法用于布尔变量,true false
如果a是一个对象,那么a =!a  => a=false  ;再次使用变成true而不会变为原来的a
if a != self 如果一个变量不等于自身?变量可以不等于自身?
self 指的是一个类定义的本身而不是英语中的反身指代a,
例如
class A
def initialize
end
end
class B
def initialize
@a = A.new
end
def foo
p (@a != self)? #这里的self值得是B类
end
end
b = B.new
b.foo

评分

参与人数 1星屑 +150 收起 理由
弗雷德 + 150 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
995
在线时间
180 小时
注册时间
2013-2-16
回帖
146
 楼主| 发表于 2013-7-10 13:31:26 | 显示全部楼层
satgo1546 发表于 2013-7-8 19:15
(最好不要一帖多问相当于而相当于
如果a是true则a = false,a是false则a = true←取反用

变量当然 ...

谢谢.......
那么,nil和false 是不是一模一样的呢?如果提前设置a = nil,
后面的if a == nil 和 if a == false 的判定结果是不是一样的呢?

点评

不推荐这样判断。如果要判断a是不是false或nil,推荐使用unless a。if a==nil 和 if a ==false肯定不一样。“==”是指相等,nil与false并不同。  发表于 2013-7-10 18:23
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部