在Ruby中,一个对象可以破坏另一个吗?
例如:
class Creature
def initialize
@energy = 1
end
attr_accessor :energy
end
class Crocodile < Creature
def eat(creature)
@energy += creature.energy
creature = nil #this does not work
end
end
fish = Creature.new
croc = Crocodile.new
croc.eat(fish)
Run Code Online (Sandbox Code Playgroud)
在鳄鱼吃掉一个生物并吸收其能量后,该生物应该不再存在.但是上面的代码并没有破坏这个生物.
我知道,如果我说fish = nil,变量fish引用的对象将被垃圾收集.但是creature = nil在Crocodile的eat方法中说不能做到这一点.
从croc.eat里面,我可以说"因为变量'鱼'被传递给我,当我完成后,我要把'鱼'设置为零?"
我基本上采取了Chuck建议的方法,并进行了一些修改.这是我的推理:
因此,我这样做了:
@creaturelist.(我使用实例变量而不是类变量的原因是任何子类都Creature可以拥有自己的列表.)@creaturelist返回一个ID.@id变量中记住该ID .Creature.remove(@id),并且唯一的引用将被删除.现在我可以这样做:
class Predator < …Run Code Online (Sandbox Code Playgroud) 以下行的结果是什么:
int* ptr;
printf("%x, %x\n", ptr, &ptr);
Run Code Online (Sandbox Code Playgroud)
我知道这ptr是一个记忆中的地址,但是什么&ptr?
我正在使用Visual Studio 2005(以及C++中的win32 API),我有一个使用内置对话框编辑器设计的窗口.
在运行时,我希望能够使用它CreateWindow()来添加新的控件.这是有效的,但是我创建的控件看起来都很难看.出于具体的目的,我添加的控件是一个TabControl,当我使用内置的对话框编辑器添加它时,选项卡标签中的文本看起来不错.当我在运行时创建它时CreateWindow(),文本是大而粗的,看起来不合适.
我发现在MSDN上使用Windows XP视觉样式,它似乎描述了正确区域中的内容,但是当我按照其中的说明(嵌入清单)时,动态创建的控件似乎是比使用的更新的样式.对话框编辑器(选项卡控件的背景颜色更浅).
我也发现了这个SetWindowTheme()功能.我不太确定如何使用这个函数...我希望我可以GetWindowTheme()在窗口上使用,然后将其结果传递SetWindowTheme()给它们看起来一样,但是GetWindowTheme()返回HTHEME,我不知道你甚至可以用这些做什么......你绝对不能把它们传递给它们SetWindowTheme().
在MySQL表中,我有几列 - 一些包含字符串,一些日期或数字.我一直只是制作每个字段varchar(200).创建更合适的字段类型有什么好处?选择查询会变得更快吗?
我编写了一个Ruby脚本,它正在读取File.read()包含unicode字符的文件(),并且它在命令行中运行良好.
但是,当我尝试将其放入Automator工作流程(Mac OS X)时,我收到此错误;
2009-12-23 17:55:15 -0500: /Users/jeffreyaylesworth/bin/symbols:19:in `split': invalid byte sequence in US-ASCII (ArgumentError)
(traceback)
Run Code Online (Sandbox Code Playgroud)
因此,当从Automator运行时,突然拆分不喜欢非ASCII字符.据我所知,两者都是从相同版本的Ruby运行(版本号是相同的).
我不太关心他们为什么表现不同(但如果有人知道,这很好),但我想要一个解决方案来分割接受非ASCII字符.
如果它有帮助,我需要将单个字符的文本分成两部分,所以如果与C的标记化器类似的东西可以工作,我可以使用它.
我想将数组转换为可存储的字符串格式,将它们的键和值组合成一个由特殊字符分隔的串行字符串?
但我也担心,因为无法预测用户表单的输入,所以输入也可能包含我选择作为分隔符的字符.
我可以实现自定义转义序列以满足此需求吗?
这种情况要求我实现除传统序列化或json_encode之外的可互操作,独立于平台的解决方案.大多数时候我不生成序列,只需要从外部源使用它.
我需要在我的WPF应用程序中创建一个看起来很浪漫的文本对象,我实际上假设会有一个"沿路径弯曲"类型的选项,但我在Blend中根本看不到一个.
我找到了一个教程,建议你需要将文本转换为逐字母的路径然后旋转它,但在我看来,这是非常可怕的,错误的空间和灵活性不足.
我基本上想要一个句子有一个动画波效果,我怎么能实现这个?
谢谢所有马克
我让AlertView与"cancelButtonTitle:@"取消""和"otherButtonTitles:nil"完美配合.我的问题是如何获得其他按钮.
当我只更改"otherButtonTitles:@"第二个按钮""时,iPhone模拟器刚刚从应用程序崩溃并进入主屏幕.
我通常将Business项目中的类命名为Manager.cs,如BaseManager.cs,CommentsManager.cs,ProfileManager.cs等...
如何在DataAccess项目中命名您的类?你称之为CommentsDA,CommentsDB还是什么?
好奇...... BTW,我正在使用.NET C#.