ホームページ > バックエンド開発 > Golang > なぜ人々は golang で組み込み関数を使用するのでしょうか?

なぜ人々は golang で組み込み関数を使用するのでしょうか?

WBOY
リリース: 2024-02-06 09:18:09
転載
734 人が閲覧しました

为什么人们在 golang 中使用内部函数?

質問の内容

オープンソースの Go プロジェクトをいくつか読んでいると、次のように実装されているコードがたくさんあることがわかりました。 リーリー

上記のコードでは、内部関数

go func...(id, s) は不要と思われます。言い換えると、次のコードを書いた場合、何が違うでしょうか:

for id, s := range subscribers {
                go func(id string, s *hellosaidsubscriber) {
                    select {
                    case <-s.stop:
                        unsubscribe <- id
                        return
                    default:
                    }

                    select {
                    case <-s.stop:
                        unsubscribe <- id
                    case s.events <- e:
                    case <-time.after(time.second):
                    }
                }(id, s)
            }
ログイン後にコピー


正解


最初の例では、これは

匿名関数 goキーワードです。 goroutine、Go の同時実行モードです。したがって、匿名関数 (ゴルーチン) 内のコードは同時に処理されます。

2 番目の例では、Goroutine を除外することは、コードが順次実行されることを意味します。

匿名関数は、名前を含まない関数です。インライン関数を作成する場合によく使用されます。クロージャーを形成することができます。匿名関数は、

関数リテラルとも呼ばれます。

以上がなぜ人々は golang で組み込み関数を使用するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート