我正在编写一些脚本语言,只是为了获得一些乐趣并学习代码:P
我想要你的意见/建议。我有一个想法,但我不想包括人们想要吐的东西。我计划很快就将这种语言开源一次。
有人认为有这样的东西会很酷吗
[Foreach] Uppercase Letter s
in Case-Insensitive Word SallySawtheSeafiShandateit:
Count++.
s.Highlight: True.
RunOnce.ProtectedMethod.ActivateProtectedMethod: IsTrue.
[Protected Method.LockTo: [Foreach]].IsTrue
StatusBar.Message: Match for s was found. Total: Count..
RunOnce.ProtectedMethod.Disable.
说明:上面实际上做的是搜索一串文本“SallySawtheSeafiShandateit”并突出显示每一个匹配。但是当它找到“s”的第一个匹配时,它会运行一个名为“IsTrue”的方法,并将状态栏文本设置为“匹配被找到...”。然后停用RunOnce方法,以便不再访问它,因为不需要再次运行它。
这可能不是最好的例子,但我认为你明白了。很多时候我只需要在foreach循环中做一次事情,但是如果不编写一大堆其他代码就不能这样做。
我认为,至少这样,一切都可以用两种方法完成。
请粗暴地诚实。 :)
谢谢
答案 0 :(得分:1)
这似乎是以下结构的过度复杂化(在java风格中):
boolean ranOnce = false;
for (char c : string.toCharArray()) {
if (c != 's') continue;
if (!ranOnce) {
// do stuff once
ranOnce = true;
}
// do other stuff
}
对于我来说,当一个布尔值和一个if条件成功时,这似乎是极端的过度工程。
答案 1 :(得分:0)
嗯。对于这种情况,我通常只使用一个标志变量和一个条件。
我会重新考虑“runOnce” - 这有点模棱两可。它是在第一次迭代,最后一次迭代,在中间某处运行吗?从我可以告诉它看起来你的运行在第一次迭代,但然后再次使用什么用于显示总计数在第一次迭代?你会知道它只是“1”。
对于我的钱,我想我实际上使用的两个关键字分别在第一次迭代和最后一次迭代时触发了事件/方法/等。