Goでの文字列の操作の概要

提供:Dev Guides
移動先:案内検索

文字列は、定数または変数のいずれかである1つ以上の文字(文字、数字、記号)のシーケンスです。 Unicode で構成される文字列は不変のシーケンスであり、変更されないことを意味します。

テキストは私たちが日常生活で使用する非常に一般的な形式のデータであるため、文字列データ型はプログラミングの非常に重要な構成要素です。

このGoチュートリアルでは、文字列を作成および印刷する方法、文字列を連結および複製する方法、および文字列を変数に格納する方法について説明します。

文字列リテラル

Goでは、文字列はバッククォート`(バックティックと呼ばれることもあります)またはダブルクォート"のいずれかに存在します。 使用する引用符に応じて、文字列の特性は異なります。

` ```bar``` `のように逆引用符を使用すると、raw文字列リテラルが作成されます。 生の文字列リテラルでは、逆引用符を除いて、引用符の間に任意の文字が表示される場合があります。 生の文字列リテラルの例を次に示します。

`Say "hello" to Go!`

バックスラッシュは、生の文字列リテラル内では特別な意味はありません。 たとえば、\nは実際の文字、円記号\、文字nとして表示されます。 \nが実際の改行を挿入する解釈された文字列リテラルとは異なります。

生の文字列リテラルを使用して、複数行の文字列を作成することもできます。

`Go is expressive, concise, clean, and efficient.
Its concurrency mechanisms make it easy to write programs
that get the most out of multi-core and networked machines,
while its novel type system enables flexible and modular
program construction. Go compiles quickly to machine code
yet has the convenience of garbage collection and the power
of run-time reflection. It's a fast, statically typed,
compiled language that feels like a dynamically typed,
interpreted language.`

解釈される文字列リテラルは、"bar"のように、二重引用符で囲まれた文字シーケンスです。 引用符内には、改行とエスケープされていない二重引用符を除いて、任意の文字が表示される場合があります。

"Say \"hello\" to Go!"

ほとんどの場合、解釈された文字列リテラルを使用します。これは、文字列内でエスケープ文字を使用できるためです。

Goで文字列がどのようにフォーマットされるかを理解したので、プログラムで文字列を印刷する方法を見てみましょう。

文字列の印刷

システムライブラリのfmtパッケージを使用し、Println()関数を呼び出すと、文字列を印刷できます。

fmt.Println("Let's print out this string.")
OutputLet's print out this string.

システムパッケージを使用するときはimportする必要があるため、文字列を出力する簡単なプログラムは次のようになります。

package main

import "fmt"

func main() {
    fmt.Println("Let's print out this string.")
}

文字列の連結

連結は、文字列をエンドツーエンドで結合して、新しい文字列を作成することを意味します。 +演算子を使用して文字列を連結できます。 数値を操作する場合、+は加算の演算子になりますが、文字列を使用する場合は結合演算子になることに注意してください。

文字列リテラル"Sammy""Shark"を、fmt.Println()ステートメントによる連結と組み合わせてみましょう。

fmt.Println("Sammy" + "Shark")
OutputSammyShark

2つの文字列の間に空白が必要な場合は、文字列内に空白を含めることができます。 この例では、Sammyの後に引用符で空白を追加します。

fmt.Println("Sammy " + "Shark")
OutputSammy Shark

+演算子は、2つの異なるデータ型間では使用できません。 例として、文字列と整数を連結することはできません。 次のように書き込もうとした場合:

fmt.Println("Sammy" + 27)

次のエラーが発生します。

Outputcannot convert "Sammy" (type untyped string) to type int
invalid operation: "Sammy" + 27 (mismatched types string and int)

文字列"Sammy27"を作成する場合は、数値27を引用符("27")に入れて、整数ではなく、ストリング。 数字を文字列に変換して連結すると、郵便番号や電話番号を処理するときに便利です。 たとえば、国コードと市外局番の間に加算を実行したくないが、それらを一緒に維持したい場合があります。

連結によって2つ以上の文字列を組み合わせると、プログラム全体で使用できる新しい文字列が作成されます。

文字列を変数に格納する

変数は、プログラムにデータを格納するために使用できるシンボルです。 それらは、データや値を入力する空のボックスと考えることができます。 文字列はデータであるため、文字列を使用して変数を埋めることができます。 文字列を変数として宣言すると、Goプログラム全体で文字列を操作しやすくなります。

文字列を変数内に格納するには、変数を文字列に割り当てるだけです。 この場合、変数としてsを宣言します。

s := "Sammy likes declaring strings."

注:他のプログラミング言語に精通している場合は、変数をsammyと記述している可能性があります。 ただし、Goは短い変数名を優先します。 この場合、変数名にsを選択すると、Goの記述スタイルに適していると見なされます。


変数sをその特定の文字列に設定したので、次のように変数を出力できます。

fmt.Println(s)

次に、次の出力を受け取ります。

OutputSammy likes declaring strings.

変数を使用して文字列を表すことにより、使用するたびに文字列を再入力する必要がなくなり、プログラム内での文字列の操作と操作がより簡単になります。

結論

このチュートリアルでは、Goプログラミング言語での文字列データ型の操作の基本について説明しました。 文字列の作成と印刷、文字列の連結と複製、および文字列の変数への格納は、Goプログラムで文字列を使用するための基本を提供します。