问题标签 [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.

0 投票
4 回答
24773 浏览

ruby - Ruby 中有 goto 语句吗?

有没有办法从指定的行开始,比如 goto 语句?

0 投票
6 回答
1794 浏览

c - C 中字符串标记化函数的复杂性

为了复习我的 C,我正在编写一些有用的库代码。在阅读文本文件时,拥有一个方便的标记化功能总是有用的,它可以完成大部分繁重的工作(循环strtok不方便且危险)。

当我编写这个函数时,我对它的复杂性感到惊讶。说实话,我几乎确信它包含错误(特别是在分配错误的情况下内存泄漏)。这是代码:

这是简单的用法:

哦,还有strdup

关于tokenize函数代码的几点注意事项:

  1. strtok有覆盖其输入字符串的不礼貌习惯。为了保存用户的数据,我只在输入的副本上调用它。副本是使用 获得的strdup
  2. strdup然而,它不是 ANSI-C,所以我不得不写一个
  3. 数组随着toks动态增长realloc,因为我们事先不知道会有多少令牌。初始大小为 2 仅用于测试,在实际代码中我可能会将其设置为更高的值。它也会返回给用户,用户必须在使用后释放它。

  4. 在所有情况下,都特别注意不要泄漏资源。例如,如果realloc返回 NULL,它将不会在旧指针上运行。旧指针将被释放,函数返回。返回时没有资源泄漏tokenize(除非在返回给用户的数组在使用后必须释放的名义情况下)。

  5. Agoto用于更方便的清理代码,根据在某些情况下可能很好的哲学(这是一个很好的例子,恕我直言)goto

以下函数可以帮助在单个调用中进行简单的释放:

我真的很想与 SO 的其他用户讨论此代码。有什么可以做得更好的?你会为这样的分词器推荐一个不同的接口吗?解除分配的负担是如何从用户那里承担的?代码中是否存在内存泄漏?

提前致谢

0 投票
2 回答
2306 浏览

go - 协程和`goto`之间的区别?

我总是读到“goto”是什么可怕的东西。但是今天,在阅读 Google 编程语言Go时,我发现它支持协程(Goroutines)。

问题是:

或者

为什么?

0 投票
7 回答
522 浏览

c# - 这是对 goto 的明确使用吗?

只是想知道这是否被认为是在 C# 中明确使用 goto :

我觉得这没问题,因为片段很小并且应该有意义。当您想在处理异常后重试操作时,人们通常是否有另一种方法可以从此类错误中恢复?

编辑:那很快。回答几个问题并稍微澄清一下 - 这是从不同类型的项目转换而来的过程的一部分。_userInteractor.GetDatabaseConnector() 调用是确定用户是否要重试的部分(可能使用与他们正在加载的配置中的数据库不同的数据库)。如果它返回 null,则没有指定新的数据库连接,操作应该完全失败。

我不知道为什么我没有想到使用 while 循环。应该是离下午 5 点太近了。

编辑 2:我查看了 LoadDatabase() 方法,DatabaseLoaderException如果失败,它会抛出一个。我已经更新了上面的代码来捕获那个异常而不是异常。

编辑3:普遍的共识似乎是

  • 不需要在这里使用 goto - while 循环就可以了。
  • 使用这样的异常不是一个好主意 - 我不确定用什么来替换它。
0 投票
4 回答
13287 浏览

iphone - 如何在 Objective-C 的 switch 语句中使用 goto?

在我的代码中,我需要能够在同一个 switch 语句中跳转(转到)不同的情况。有没有办法做到这一点?

我的代码是这样的:(有很多代码我都忽略了)

}

感谢您的时间!-杰夫

0 投票
14 回答
36862 浏览

c - 是否可以将标签的地址存储在变量中并使用 goto 跳转到它?

我知道每个人都讨厌 gotos。在我的代码中,出于我考虑并感到满意的原因,它们提供了一个有效的解决方案(即我不是在寻找“不要那样做”作为答案,我理解您的保留,并理解我为什么使用它们反正)。

到目前为止,它们都很棒,但我想以一种方式扩展功能,要求我基本上能够存储指向标签的指针,然后再访问它们。

如果此代码有效,它将代表我需要的功能类型。但它不起作用,30 分钟的谷歌搜索没有显示任何内容。有没有人有任何想法?

0 投票
9 回答
278 浏览

c# - 使用 Goto 增强 DRY 原则和代码清晰度:好主意吗?

我有一些结构如下的代码:

由于我讨厌复制代码,这是 goto 为数不多的有用应用程序之一,还是我可以使用更好的结构?

0 投票
2 回答
2834 浏览

ruby - Ruby/Watir 在使用“goto”后卡住了

我正在使用简单的 browser.goto(url) 调用我们的 Microsoft SQL 报告页面。它在第一个 url 上做了一个“goto”,然后就坐在那里。我目前正在通过命令行运行它。

如果我 Ctrl+C 取消它,输出显示:

所以,我猜页面上的某些东西会导致 Waitr 问题。我用谷歌搜索了关于片段,但没有回来任何东西。我想要它做的就是加载页面,在那里坐一段指定的时间,然后移动到下一个 url(它用于电视屏幕),没什么复杂的。

所以我尝试放置一个“开始/救援”,即:

不走运,它只是位于第一个网址上。我已经尝试使用 Timeout 类来包装它,即:

仍然没有运气,它崩溃了。有谁知道修复,或者如何覆盖 Watir 在执行 goto 时所做的隐式“等待”?

0 投票
11 回答
46609 浏览

php - PHP中的GOTO是邪恶的吗?

我最近发现 PHP 5.3 支持名为GOTO. 每个人都知道它的作用。但是,它并不完全是传统的GOTO,它只是一个跳转标签。我很想知道这是否GOTO是邪恶的并暗示了错误的代码?

0 投票
2 回答
12698 浏览

c# - C#.NET 中的 GOTO 语句

在这种情况下会执行 goto 吗?