文字列操作

んにちはnasustです。 今回は文字列操作について解説します。

文字列とは

Go言語 / golangの文字列は、バッククォート ` またはダブルクォート ” に囲まれた文字シーケンスです。 バッククォート ` とダブルクォート ” の違いは以下の通りです。

バッククォート ` : バッククォート以外の文字列を記述できます。バッククォート内で何も解釈されません。\r\nなど、そのままの文字列として扱われます。改行コードを含めることが出来ます。

ダブルクォート ” : \r\nなどのエスケープを解釈します。8進数\nnn、16進数\xnnの文字のエスケープしたバイトを記述することが出来ます。

str := "abcdefg"

ソースコードで上記のう様に記述した場合は、string型の変数に文字列が格納されます。string型はbyteのスライスのように振る舞いますが不変です。文字列の長さはlen関数で調べることができます。注意なのはbyte数なので文字数を調べる場合は、utf8パッケージのRuneCountInStringを使用します。

文字列の結合

strA := "abcd"
strB := "efgh"

strAB := strA + strB

または

var strAB string

strA := "abcd"
strB := "efgh"

strAB += strA
strAB += strB

+または+=で文字列の結合できます。しかし注意点はstring型が不変で固定長であることです。演算子を使用した結合では、結合毎に新しいstring型を作っているので負荷が掛かります。結合を沢山行う場合はbyteのスライスで行った方がパフォーマンスは良いです。

文字列の操作

文字列操作を行うにはstringsパッケージを使用します。 このパッケージでは、比較やSplitなど操作できる関数があります。

iOS、Android、Web、APIサーバーなどのフロントエンド・バックエンドを開発するソフトウェアエンジニアです。 UI/UXが好きです。かっこいいUIやWebデザインを眺めるのが趣味です。 このブログはソフトウェア開発関係の内容を記事にしています。
web service:
GitHubQiitaTwitterはてなブログ
handle name:
nasust
real name:
hideki mori
job:
ソフトウェアエンジニア
develop:
target: ios, android, web page, single page application, api server, system service, cli tool, linux embedded device

lang: c/c++, go, swift, objective-c, java, kotlin, typescript, dart, javascript, ruby, python, php

tool: vscode, xcode, android studio, photoshop, vim, docker