【发布时间】:2021-01-19 08:20:39
【问题描述】:
请考虑以下代码,
class A {
foo() {
int a = logicToGetA();
int _bar() => someOtherLogic(a);
// ..
int b = _bar();
// ..
}
}
class B {
int _bar(int a) => someOtherLogic(a);
foo() {
int a = logicToGetA();
// ..
int b = _bar(a);
// ..
}
}
main() {
for (int i = 0; i < 1000000; i++) {
A().foo();
}
for (int i = 0; i < 1000000; i++) {
B().foo();
}
}
解释:A 类的 bar() 嵌套在 foo() 中,但 B 类的 bar() 嵌套在 foo() 之外。在第二种情况下,bar() 也可以作为静态方法。
我的疑问:如果 foo() 被多次调用,哪种方式更有效?如果 A().foo() 被调用 1000000 次,A.foo.bar 会被重新定义那么多次吗?
【问题讨论】:
-
为什么这么多非母语人士说“我有疑问”,而他们的意思是“我有一个问题”?问题是中性的,怀疑意味着对情况或答案的某种怀疑。只是好奇。
-
“一个疑问”对于大多数其他英语语言中所谓的“问题”来说是完全正确的印度英语。 (english.stackexchange.com/questions/294125/…)
-
我认为“怀疑”是一种谦虚的提问方式,即“我明白你的意思,但我需要一点澄清”。而“问题”可能不那么尊重。就像上面给出的询问示例。
-
我向您的专业知识低头。非母语印度英语的人很容易忽略这些细微差别。我自学将“怀疑”理解为“问题”,到目前为止,这对我在国际公司工作很有效,可能是因为“问题”这个词在美式/英式英语中是中性的(至少对我而言)。
-
@lrn 你的方法更合理。我应该避免使用“怀疑”作为可数名词。
标签: performance dart nested-function