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

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

WBOY
WBOY転載
2024-02-06 09:18:09738ブラウズ

为什么人们在 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 までご連絡ください。