我有一个非常简单的程序,由于某种原因让我难过。我把它放下来,今天早上又回来了,我仍然难倒。首先,我知道这不是一个理想的解决方案。我有两种形式:Main和Log。 Main表单有一个按钮,单击时会添加到List _debugLog。单击btnDebug时,它会打开日志表单,并将_debugLog传递给它。一切都很好,计时器设置和运行,一切正常。每2.5秒触发一次事件log.UpdateLog(),以使用更新的日志更新日志表单。但是,mainFormLog.Count和_log.Count总是相同的,并且当在主窗体上单击btnAdd时它们会同时增加。 _log如何从tick事件中获得新的_debugLog(mainFormLog)?
export const insert = new ValidatedMethod({
name : 'projects.insert',
mixins : [simpleSchemaMixin],
schema : Projects.simpleSchema().pick([
'name'
]),
schemaValidatorOptions: {
clean : true,
filter: false
},
run({name}) {
return Projects.insert({
name
}, null);
},
});
答案 0 :(得分:3)
好吧,你将列表的引用从Main传递给Log,所以它实际上是同一个列表。
如果您想要一个单独的列表,使用Main中的列表进行初始化,您可以使用:
compile 'com.google.android.gms:play-services-location:8.1.0'
也许this有助于理解变量和引用之间的区别:
对于值类型,值是信息本身。供参考 类型,该值是一个引用,可能是null或可能是一种方式 导航到包含信息的对象。
例如,将变量视为一张纸。它可能 有值“5”或“假”写在上面,但它不能有我的 房子......它必须有我家的方向。那些 方向相当于参考。特别是两个 人们可能会有不同的纸张包含相同的纸张 到我家的方向 - 如果有人遵循这些指示 把我的房子涂成红色,然后第二个人会看到那个变化 太。如果他们在纸上只有我房子的单独照片, 然后一个人给他们的纸着色不会改变另一个人 人的论文。
答案 1 :(得分:0)
您的所有变量_debugLog
,mainFormLog
和_log
都指向内存中的相同列表。您只创建了一个列表,当您为该列表分配新变量时,它只是指向内存中某个位置的指针,它不会自动创建列表的新副本。