問題タブ [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 ではないため、ANSI-C を作成する必要がありました
  3. トークンの数が事前にわからないため、toks配列は で動的に拡張されます。reallocテスト用の初期サイズは 2 です。実際のコードでは、おそらくもっと大きな値に設定します。また、ユーザーに返され、ユーザーは使用後に割り当てを解除する必要があります。

  4. いずれの場合も、リソースをリークしないように細心の注意を払っています。たとえば、reallocNULL を返す場合、古いポインターは実行されません。古いポインターが解放され、関数が戻ります。返されたときにリソースがリークすることはありませんtokenize(ユーザーに返された配列を使用後に割り当てを解除する必要がある名目上のケースを除きます)。

  5. Aは、場合によっては適切な哲学gotoに従って、より便利なクリーンアップ コードに使用されます(これは良い例です。IMHO)。goto

次の関数は、1 回の呼び出しで単純な割り当て解除を行うのに役立ちます。

SO の他のユーザーとこのコードについて話し合いたいと思います。何がもっとうまくできたでしょうか?そのようなトークナイザーに異なるインターフェイスをお勧めしますか? ユーザーからの割り当て解除の負担はどのように取り除かれますか? とにかくコードにメモリリークがありますか?

前もって感謝します

0 投票する
2 に答える
2306 参照

go - コルーチンと「goto」の違いは?

私はいつも「goto」の恐ろしいことについて読んでいます。しかし、今日、Google プログラミング言語Goについて読んでみると、それがコルーチン (ゴルーチン) をサポートしていることがわかります。

質問は:

または

なんで?

0 投票する
7 に答える
522 参照

c# - これはgotoの明確な使用法ですか?

これがC#でのgotoの明確な使用と見なされるかどうか疑問に思っています:

スニペットは小さく、意味があるはずなので、これは問題ないと思います。例外を処理した後に操作を再試行したいときに、人々が通常このようなエラーから回復する別の方法はありますか?

編集:それは速かった。いくつかの質問に答えて、物事を少し明確にするために-これは本質的に別の種類のプロジェクトから変換しているプロセスの一部です。_userInteractor.GetDatabaseConnector()呼び出しは、ユーザーが再試行するかどうかを決定する部分です(おそらく、ロード元の構成にあるデータベースとは異なるデータベースを使用します)。nullが返された場合、新しいデータベース接続は指定されておらず、操作は完全に失敗するはずです。

whileループを使用することを考えなかった理由がわかりません。午後5時に近づきすぎているに違いありません。

編集2: LoadDatabase()メソッドを確認しましたが、DatabaseLoaderException失敗するとaがスローされます。上記のコードを更新して、Exceptionではなくその例外をキャッチしました。

編集3:一般的なコンセンサスはそれであるようです

  • ここでgotoを使用する必要はありません。whileループで問題ありません。
  • このような例外を使用することはお勧めできません。ただし、何に置き換えるかはわかりません。
0 投票する
4 に答える
13287 参照

iphone - Objective-Cのswitchステートメントでgotoを使用するにはどうすればよいですか?

私のコードでは、同じswitchステートメント内で別のケースにジャンプ(goto)できる必要があります。これを行う方法はありますか?

私のコードは次のようなものです:(私がすべてを省略したコードがたくさんあります)

}

お時間をいただきありがとうございます!-ジェフ

0 投票する
14 に答える
36862 参照

c - ラベルのアドレスを変数に格納し、goto を使用してジャンプすることは可能ですか?

私は誰もが後藤を嫌っていることを知っています。私のコードでは、私が検討し、満足している理由から、それらは効果的な解決策を提供します(つまり、答えとして「それをしないでください」を探しているわけではありません。あなたの予約を理解し、なぜそれらを使用しているのかを理解していますとりあえず)。

これまでのところ、それらは素晴らしいものでしたが、本質的にラベルへのポインターを保存して後でそれらに移動できるようにする必要があるような方法で機能を拡張したいと考えています。

このコードが機能する場合、必要な機能のタイプを表します。しかし、それは機能せず、30 分間のグーグル検索では何も明らかになりませんでした。誰にもアイデアはありますか?

0 投票する
9 に答える
278 参照

c# - Gotoを使用してDRYの原則とコードの明確さを強化する:良い考えですか?

次のような構造のコードがあります。

コードのコピーを嫌うので、これはgotoの数少ない便利なアプリケーションの1つですか、それとも使用できるより良い構造がありますか?

0 投票する
2 に答える
2834 参照

ruby - 「goto」を使用した後、Ruby/Watir がスタックする

Microsoft SQL レポート ページへの単純な browser.goto(url) 呼び出しを使用しています。最初の URL で「goto」を実行しますが、そこに留まります。現在、コマンドラインから実行しています。

Ctrl+C でキャンセルすると、出力は次のようになります。

そのため、ページ上の何かが Waitr の問題を引き起こしていると推測しています。私はスニペットについてグーグルで検索しましたが、何も戻ってきません。私がやりたいことは、ページをロードし、指定された時間そこに座ってから、次の URL (テレビ画面用です) に移動することだけです。複雑なことは何もありません。

だから私は「開始/レスキュー」を配置しようとしました:

うまくいきません。最初の URL にあるだけです。そして、Timeout クラスを使用してそれをラップしようとしました。

それでもうまくいかず、クラッシュします。誰かが修正を知っていますか、または goto を実行するときに Watir が行う暗黙の「待機」をオーバーライドする方法を知っていますか?

0 投票する
11 に答える
46609 参照

php - PHP の GOTO は悪ですか?

私は最近、PHP 5.3 が という新しい言語構造をサポートしていることを知りましたGOTO。誰もがそれが何をするか知っています。ただし、それは正確には従来の ではなく、GOTO単なるジャンプ ラベルです。GOTOこれが悪であり、悪いコードを意味するかどうかを知ることに興味がありますか?