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

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

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

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

文字列リテラル

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

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

`Say "hello" to Go!`

バックスラッシュは、生の文字列リテラル内では特別な意味を持ちません。 たとえば、 は実際の文字、バックスラッシュ\、および文字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.")
}

文字列連結

Concatenationは、文字列をエンドツーエンドで結合して、新しい文字列を作成することを意味します。 文字列を連結することができます。` operator. Keep in mind that when you work with numbers, `は加算の演算子になりますが、文字列で使用する場合は結合演算子になります。

文字列リテラル"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つ以上の文字列を結合すると、プログラム全体で使用できる新しい文字列が作成されます。

変数への文字列の保存

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

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

s := "Sammy likes declaring strings."

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

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

fmt.Println(s)

その後、次の出力が表示されます。

OutputSammy likes declaring strings.

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

結論

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