golangでの入力方法

PHPz
PHPzオリジナル
2023-04-05 09:10:572352ブラウズ

Go 言語は高効率なプログラミング言語であり、構文がシンプルで理解しやすく、学習コストも比較的低いため、プログラマーの間で非常に人気があります。 Go 言語を使用する場合、多くの場合、データを入力する必要があります。では、Go 言語はどのように入力を実装するのでしょうか?次に、この記事ではgolangでの入力方法を詳しく紹介します。

1. 入力関数

Go 言語では、入力を実装する関数は fmt.Scan() 関数です。この関数の機能は標準入力からデータを読み取ることであり、一般に入力データが比較的小さい場合に使用されます。この関数の基本構文は次のとおりです。

fmt.Scan(&input)

この構文では、&input は入力変数へのポインターです。入力データを読み込むと、入力データが入力変数に格納されます。入力変数の型は入力データの型と一致する必要があることに注意してください。たとえば、整数を入力する必要がある場合、入力変数は int 型である必要があります。

2. 複数入力関数

複数のデータを入力する必要がある場合、fmt.Scan() 関数の複数のパラメーターを使用してこれを実現できます。たとえば、2 つの整数を入力する必要がある場合は、次の構文を使用できます。

fmt.Scan(&a, &b)

この構文では、&a と &b はそれぞれ a 変数と b 変数へのポインターです。入力データを読み込むと、最初のデータは a 変数に格納され、2 番目のデータは b 変数に格納されます。

入力データはスペース、タブ、復帰などの文字で区切る必要があることに注意してください。入力データ間に区切り文字がない場合は、fmt.Scanf() 関数を使用する必要があります。

3. fmt.Scanf() 関数

fmt.Scanf() 関数は、フォーマットされた入力データを読み取るために使用されます。これは fmt.Scan() 関数に似ていますが、データを読み取るときにデータ型とフォーマット文字列を指定する必要がある点が異なります。この関数の基本的な構文は次のとおりです。

fmt.Scanf(format, &input)

このうち、format は書式文字列を表し、input は入力データの変数を表します。フォーマット文字列で使用されるフォーマット文字は入力データのタイプと一致する必要があることに注意してください。たとえば、整数を入力する必要がある場合は、フォーマット文字列で「%d」フォーマット文字を使用します。

複数のデータを入力する必要がある場合は、書式文字列に複数の書式文字を指定できます。たとえば、2 つの整数を入力する必要がある場合は、次の構文を使用できます。

fmt.Scanf("%d %d", &a, &b)

4. bufio パッケージ

Go 言語には、効率的な入力操作を実装するための bufio パッケージも提供されています。 bufio パッケージは、bufio.Scanner と bufio.NewReader の 2 つのタイプを提供します。データを 1 行ずつ読み取るには bufio.Scanner タイプを使用し、任意の長さのデータ ストリームを読み取るには bufio.NewReader タイプを使用します。

以下は、bufio パッケージを使用してデータを 1 行ずつ読み取るサンプル コードです:

import (
    "bufio"
    "os"
)

func main() {
    scanner := bufio.NewScanner(os.Stdin)
    for scanner.Scan() {
        input := scanner.Text()
        // 处理输入数据
    }
}

上記のコードでは、bufio.NewScanner 関数は bufio.Scanner 型のオブジェクトを作成します。 OS から取得でき、Stdin からデータを読み取ります。入力データは、scanner.Scan() 関数を介してループで読み取り、毎回 1 行のデータを読み取ります。読み取られたデータは入力変数に保存され、それに応じて処理できます。

つまり、上記の紹介を通じて、読者は golang での入力方法を理解できたと思います。実際の開発では、入力シナリオごとに異なる入力方法が必要となる場合があり、開発者は状況に応じて適切な入力方法を選択する必要があることに注意してください。

以上がgolangでの入力方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。