Project1

标题: 悟了,悟了,终于明白变量这玩意到底是啥了 [打印本页]

作者: a554187203    时间: 2013-8-25 22:17
标题: 悟了,悟了,终于明白变量这玩意到底是啥了
变量啥也不是!它就是一个地址
a = 123
就是告诉你,123这个玩意存放在地址a的里面而已(不过地址在哪里就不知道了,是内存咩
所以一直以来难以弄懂的事情弄清了大半
拨云见雾啊
说来惭愧,没学好c的指针内容,所以对于x = xxx.new就弄不清为什么可以存放一个对象
而后,弄不懂属性这个东西为什么还可以继续存东西
不过现在终于懂了,属性就是一个变量,就是说它本身是一个地址
地址当然也可以作为另外一个内容(数组,变量,或者是对象)
而数组,由于c的这方面也没有学好,所以也弄混了
想通了之后自然就通了,数组就是一组为了方便而同一名字的变量(这里吐槽两句,由于没有内存地址,所以数组让我晕了许多次)
hash表只是一个方便操作的,一组变量而已
绕类绕去的脚本也不在那么绕啦!

——至于对不对,就由楼下的各位大大们pai啦
作者: 无脑之人    时间: 2013-8-25 22:32
听起来貌似没啥问题= =感觉LZ想太多,没必要先去弄懂这些乱七八糟的逻辑……
作者: 黄濑凉太    时间: 2013-8-27 17:07
其实的确不用想怎么乱七八糟的东西,简单的说变量就是一个可以在游戏里变动的数值。
可以变成糖果的持有数量,可以变成史莱姆的杀死量等。

作者: zeldafd    时间: 2013-8-27 20:40
數學正常也會在函數的一課教上變量……LZ沒有上課麼……

作者: 鑫晴    时间: 2013-8-27 22:15
变量就是会变的量嘛...

你赋值给他他就是什么

不赋值就是空的
作者: 1697665228    时间: 2014-3-28 18:05
这东东还用想?直接第一个事件设变量某某某为0或者其他,想要用这个事件调用另一个事件,比如接受任务找某某某谈话等,设这个变量大于这个数字,然后想调用就一直调用呗。
LZ没上过课吗……
作者: 天地有正气    时间: 2014-3-28 18:14
1697665228 发表于 2014-3-28 18:05
这东东还用想?直接第一个事件设变量某某某为0或者其他,想要用这个事件调用另一个事件,比如接受任务找某 ...

楼主说的不是变量的用法吧……
一个变量不止是一个数字,还可以是数组、哈希、文字等……
作者: 恐惧剑刃    时间: 2014-3-28 19:08
1697665228 发表于 2014-3-28 18:05
这东东还用想?直接第一个事件设变量某某某为0或者其他,想要用这个事件调用另一个事件,比如接受任务找某 ...


歧义

LZ的意思是 变量值 保存在以 变量名 为地址 的内存中
比如 a = 11
a与其说是一个变量名 不如说是一个地址
11这个数据 保存在 a 这个地址中
之所以变量名相互之间不同 就是 给定的不同地址

有某教程挺好的 编写脚本不是梦——手把手帮你蜕变成脚本党 by RyanBern
作者: 日月星辰    时间: 2014-5-18 23:10
欠K罗琳 发表于 2014-5-18 16:49
弄到25积分才了解,进度实在太慢了。我6积分已经开始写脚本了。


简直无力吐槽啊。。

ok不多说ls。。。
======
从实用角度来看,变量就是为了变而存在的。数学中也有变量的应用,这才是变量的本质.基础。【因为发明变量这个东西的人一定还没用过电脑撒】

当然cs里的说的变量和数学里的变量又稍有不同~
作者: IamI    时间: 2014-5-19 19:06
本帖最后由 IamI 于 2014-5-19 19:08 编辑

Value class & Ref class.
Ruby 这方面不清楚,为了避免被嘲笑,用托管C++(C++.Net)举例子。

Value Class,比如int(Fixnum), char, float,占用固定长度的字节,宣言的变量对应内存位置上仅有目标数值。
Value Class 在传值时,与源失去联系。
Value Class 可以被取成指针来达成别名,现代语言一般会提供一个指针封装,比如NSNumber与NSInteger,当然Ruby只有Fixnum。
Value Class 一般长度不是很长。
你可以用关键字struct来宣言一个Value Class。
仅在托管C++中,你可以用关键字value class 来宣言一个Value Class。
离开有效域,对象灭失。

Ref Class, 比如String,宣言的变量内存对应位置是一个指针(有GC的语言严格来说是句柄,或者可变指针),长度可以固定也可以变长,指向堆栈中的实际值。
现代语言中,一般不允许宣言Ref Class 的实体。Ruby 中除了Fixnum,Float,Bignum(存疑,我忘了……)以及RGSS的Rect,Color,Font(存疑)以外都是Ref Class。
这个类在传值时,依然是原来指向的对象,因为是指针传值。
这种类一般会提供一个Clone方法来获得一个Copy。
Ref Class 可以令人发指的长。
你可以用关键字class来宣言一个Ref Class。
仅在托管C++中,你可以用关键字ref class 来宣言一个Ref Class
不再有指针指向时,有GC的语言会析构对应实体。
Ruby 中只允许用class关键字宣言ref class。Struct是一个抽象类而不是关键字。
作者: y1072864217    时间: 2015-1-30 09:32
本帖最后由 y1072864217 于 2015-1-30 09:34 编辑

那个地址是存储在内存中的,当我们定义一个变量那个变量会与内存中的某个地址关联,然后我们进行赋值后那个值会存储到那个地址中。当程序运行结束这个程序所有的空间会被释放调允许被其他程序所使用。而变量的值是以二进制存储的,也就是以0或1存储的,1个0或1个1表示一位,8位是一个字节,1024字节是1k,1024k是1m然后网上推。楼主说的那个123最终存储到内存中是1111011也就是占7位的内存。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1