问题标签 [goto]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - Ruby 中有 goto 语句吗?
有没有办法从指定的行开始,比如 goto 语句?
c - C 中字符串标记化函数的复杂性
为了复习我的 C,我正在编写一些有用的库代码。在阅读文本文件时,拥有一个方便的标记化功能总是有用的,它可以完成大部分繁重的工作(循环strtok
不方便且危险)。
当我编写这个函数时,我对它的复杂性感到惊讶。说实话,我几乎确信它包含错误(特别是在分配错误的情况下内存泄漏)。这是代码:
这是简单的用法:
哦,还有strdup
:
关于tokenize
函数代码的几点注意事项:
strtok
有覆盖其输入字符串的不礼貌习惯。为了保存用户的数据,我只在输入的副本上调用它。副本是使用 获得的strdup
。strdup
然而,它不是 ANSI-C,所以我不得不写一个数组随着
toks
动态增长realloc
,因为我们事先不知道会有多少令牌。初始大小为 2 仅用于测试,在实际代码中我可能会将其设置为更高的值。它也会返回给用户,用户必须在使用后释放它。在所有情况下,都特别注意不要泄漏资源。例如,如果
realloc
返回 NULL,它将不会在旧指针上运行。旧指针将被释放,函数返回。返回时没有资源泄漏tokenize
(除非在返回给用户的数组在使用后必须释放的名义情况下)。- A
goto
用于更方便的清理代码,根据在某些情况下可能很好的哲学(这是一个很好的例子,恕我直言)。goto
以下函数可以帮助在单个调用中进行简单的释放:
我真的很想与 SO 的其他用户讨论此代码。有什么可以做得更好的?你会为这样的分词器推荐一个不同的接口吗?解除分配的负担是如何从用户那里承担的?代码中是否存在内存泄漏?
提前致谢
c# - 这是对 goto 的明确使用吗?
只是想知道这是否被认为是在 C# 中明确使用 goto :
我觉得这没问题,因为片段很小并且应该有意义。当您想在处理异常后重试操作时,人们通常是否有另一种方法可以从此类错误中恢复?
编辑:那很快。回答几个问题并稍微澄清一下 - 这是从不同类型的项目转换而来的过程的一部分。_userInteractor.GetDatabaseConnector() 调用是确定用户是否要重试的部分(可能使用与他们正在加载的配置中的数据库不同的数据库)。如果它返回 null,则没有指定新的数据库连接,操作应该完全失败。
我不知道为什么我没有想到使用 while 循环。应该是离下午 5 点太近了。
编辑 2:我查看了 LoadDatabase() 方法,DatabaseLoaderException
如果失败,它会抛出一个。我已经更新了上面的代码来捕获那个异常而不是异常。
编辑3:普遍的共识似乎是
- 不需要在这里使用 goto - while 循环就可以了。
- 使用这样的异常不是一个好主意 - 我不确定用什么来替换它。
iphone - 如何在 Objective-C 的 switch 语句中使用 goto?
在我的代码中,我需要能够在同一个 switch 语句中跳转(转到)不同的情况。有没有办法做到这一点?
我的代码是这样的:(有很多代码我都忽略了)
}
感谢您的时间!-杰夫
c - 是否可以将标签的地址存储在变量中并使用 goto 跳转到它?
我知道每个人都讨厌 gotos。在我的代码中,出于我考虑并感到满意的原因,它们提供了一个有效的解决方案(即我不是在寻找“不要那样做”作为答案,我理解您的保留,并理解我为什么使用它们反正)。
到目前为止,它们都很棒,但我想以一种方式扩展功能,要求我基本上能够存储指向标签的指针,然后再访问它们。
如果此代码有效,它将代表我需要的功能类型。但它不起作用,30 分钟的谷歌搜索没有显示任何内容。有没有人有任何想法?
c# - 使用 Goto 增强 DRY 原则和代码清晰度:好主意吗?
我有一些结构如下的代码:
由于我讨厌复制代码,这是 goto 为数不多的有用应用程序之一,还是我可以使用更好的结构?
ruby - Ruby/Watir 在使用“goto”后卡住了
我正在使用简单的 browser.goto(url) 调用我们的 Microsoft SQL 报告页面。它在第一个 url 上做了一个“goto”,然后就坐在那里。我目前正在通过命令行运行它。
如果我 Ctrl+C 取消它,输出显示:
所以,我猜页面上的某些东西会导致 Waitr 问题。我用谷歌搜索了关于片段,但没有回来任何东西。我想要它做的就是加载页面,在那里坐一段指定的时间,然后移动到下一个 url(它用于电视屏幕),没什么复杂的。
所以我尝试放置一个“开始/救援”,即:
不走运,它只是位于第一个网址上。我已经尝试使用 Timeout 类来包装它,即:
仍然没有运气,它崩溃了。有谁知道修复,或者如何覆盖 Watir 在执行 goto 时所做的隐式“等待”?
php - PHP中的GOTO是邪恶的吗?
我最近发现 PHP 5.3 支持名为GOTO
. 每个人都知道它的作用。但是,它并不完全是传统的GOTO
,它只是一个跳转标签。我很想知道这是否GOTO
是邪恶的并暗示了错误的代码?
c# - C#.NET 中的 GOTO 语句
在这种情况下会执行 goto 吗?