ホームページ > バックエンド開発 > Golang > 参照によるインターフェース値の変更

参照によるインターフェース値の変更

王林
リリース: 2024-02-13 23:10:09
転載
891 人が閲覧しました

参照によるインターフェース値の変更

php エディタ Baicao は、参照を通じてインターフェイスの値を変更する方法を紹介します。プログラミングでは、関数やメソッドのパラメータを変更する必要がある場合がありますが、新しい値を直接返すのではなく、参照を通じて元の値を変更したいことがあります。この場合、参照パラメータを使用できます。パラメーターを参照すると、新しい値を返さずに、渡された変数の値を関数内で直接変更できます。このアプローチによりパフォーマンスが向上し、コードがより簡潔で読みやすくなります。次の記事では、参照パラメータを使用してインターフェイスの値を変更する方法について詳しく説明します。

質問内容

package main

import (
    "fmt"
)

// -------- library code. can't change ------------
type client struct {
    transport roundtripper
}

type roundtripper interface {
    do()
}

type transport struct{}

func (d transport) do() {}

var defaulttransport roundtripper = transport{}

// -------- my code. can change ------------
func changetransport(r roundtripper) {
    if r == nil {
        fmt.println("transport is nil")
        r = defaulttransport
    }
}

func main() {
    c := client{}
    changetransport(c.transport)
    fmt.println(c.transport)
}
ログイン後にコピー

出力:

リーリー ###期待される:### リーリー ###遊び場###

私も https://stackoverflow.com/a/44905592/6740589 に基づいてこれを試しました:

リーリー

出力:

リーリー

Playground

Solution

roundtripper

インターフェイスのポインタを

changetransport

関数パラメータとして使用して、ポインタの値を変更します。 リーリー リーリー #########遊び場#########

以上が参照によるインターフェース値の変更の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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