ホームページ > バックエンド開発 > Golang > Golang 関数内でのコードの重複を避けるにはどうすればよいですか?

Golang 関数内でのコードの重複を避けるにはどうすればよいですか?

WBOY
リリース: 2024-04-12 11:24:02
オリジナル
619 人が閲覧しました

Go 関数でのコードの重複を避けるには、次の方法を使用できます。 インライン関数を使用します。関数本体を関数呼び出しに埋め込み、コードの行数を減らします。匿名関数を使用する: すぐに実行できる、または名前を付けて呼び出すことなく他の関数に渡すことができる、名前のない関数を定義します。拡張ライブラリを作成します。共通ロジックをカプセル化し、同じコード ブロックを複数の関数にインポートして、コードの再利用を実現します。

Golang 関数内でのコードの重複を避けるにはどうすればよいですか?

#Go 関数内でコードの重複を避ける方法

はじめに

書くときGo コードを作成するときにコードの重複が発生する可能性があり、その結果、保守が困難でエラーが発生しやすいコードが生成される可能性があります。コードの重複を避けるために、Go が提供するいくつかの機能を使用できます。

インライン関数の使用

インライン関数を使用すると、別の関数の呼び出し内に関数の本体を埋め込むことができます。これにより、個別の関数を作成する必要がなくなり、コード行と潜在的なエラーが削減されます。

func main() {
    fmt.Println(sum(1, 2))
}

func sum(a, b int) int {
    return a + b
}
ログイン後にコピー

匿名関数の使用

匿名関数を使用すると、すぐに実行したり別の関数に渡したりできる名前のない関数を定義できます。これにより、関数に名前を付けて呼び出す必要がなくなります。

func main() {
    fmt.Println(func(a, b int) int { return a + b }(1, 2))
}
ログイン後にコピー

独自の拡張ライブラリを作成する

複数の関数に同じコード ブロックを頻繁に使用する場合は、独自の拡張ライブラリを作成し、それをプログラム。これは、一般的なロジックをカプセル化し、コードを簡素化するのに役立ちます。

// utils.go
package utils

import "fmt"

// Sum returns the sum of two integers.
func Sum(a, b int) int {
    return a + b
}

// main.go
package main

import "github.com/username/customlib/utils"

func main() {
    fmt.Println(utils.Sum(1, 2))
}
ログイン後にコピー

実用的なケース

トリミング、大文字と小文字の変換など、入力文字列に対して複数の操作を実行する必要がある関数があるとします。これらの操作を個別の関数に分割したくないが、コードの重複は避けたいと考えています。

この状況を回避するには、匿名関数を使用できます:

func formatString(s string) string {
    f := func(op string) string {
        switch op {
        case "trim":
            return strings.TrimSpace(s)
        case "upper":
            return strings.ToUpper(s)
        case "lower":
            return strings.ToLower(s)
        default:
            return s
        }
    }

    return f("trim") + f("upper") + f("lower")
}
ログイン後にコピー

この関数は次のように呼び出すことができます:

s := "  Hello, World!  "
fmt.Println(formatString(s))
// 输出:
// HELLO, WORLD!hello, world!
ログイン後にコピー

以上がGolang 関数内でのコードの重複を避けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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