{"id":287,"date":"2024-09-23T14:18:14","date_gmt":"2024-09-23T07:18:14","guid":{"rendered":"https:\/\/gotutorial.org\/?page_id=287"},"modified":"2024-09-23T15:18:26","modified_gmt":"2024-09-23T08:18:26","slug":"go-string","status":"publish","type":"page","link":"https:\/\/www.gotutorial.org\/go-tutorial\/go-string\/","title":{"rendered":"Go String"},"content":{"rendered":"\n<p><strong>Summary<\/strong>: in this tutorial, you will learn about Go string type and how to manipulate strings effectively.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Introduction to Go string<\/h2>\n\n\n\n<p>ASCII (American Standard Code for Information Interchange) uses 7-bit integers (0-127) to encode 128 specified characters including English letters (both uppercase and lowercase), digits (0-9), control characters (newline, carriage return), and special symbols (punctuation marks). Each character in the ASCII character set fits in one byte.<\/p>\n\n\n\n<p>Unicode uses 4 bytes to support characters from all writing systems, which is much more comprehensive than ASCII.<\/p>\n\n\n\n<p>But we don&#8217;t want to use 4 bytes to encode every character in programs. To make programs more efficient, we use UTF-8 (Unicode Transformation Format &#8211; 8 bit) with a variable-width encoding for encoding Unicode characters.<\/p>\n\n\n\n<p>UTF-8 uses 1 to 4 bytes to represent a character:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>1 byte for characters in the ASCII range.<\/li>\n\n\n\n<li>2 to 4 bytes for other characters.<\/li>\n<\/ul>\n\n\n\n<p>UTF-8 is more efficient because it uses one byte for ASCII and 2 to 4 bytes for other characters.<\/p>\n\n\n\n<p>In Go, strings are sequences of bytes that are typically encoded in UTF-8. Additionally, strings are immutable. It means that once they are created, they cannot be changed.<\/p>\n\n\n\n<p>Go strings can include Unicode characters, which makes them very flexible for handling text from various languages.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Declaring string variables<\/h2>\n\n\n\n<p>To <a href=\"https:\/\/gotutorial.org\/go-tutorial\/go-variables\/\">declare a string variable<\/a>, you use the <code>var<\/code> keyword, variable name <code>string<\/code> type:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\"><span class=\"hljs-keyword\">var<\/span> message <span class=\"hljs-keyword\">string<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this example, we declare the <code>message<\/code> variable with the type <code>string<\/code>. The <code>message<\/code> variable takes the &#8220;zero value&#8221; as the default value, which is an empty string <code>\"\"<\/code>.<\/p>\n\n\n\n<p>You can declare a string variable and initialize its value at the same time:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\"><span class=\"hljs-keyword\">var<\/span> message <span class=\"hljs-keyword\">string<\/span> = <span class=\"hljs-string\">\"Hi\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this example, we declare the <code>message<\/code> variable and initialize its value to the string <code>\"Hi\"<\/code>.<\/p>\n\n\n\n<p>Inside a function, you can use the short variable declaration syntax to make the code more concise:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\">message := <span class=\"hljs-string\">\"Hi\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Creating string literals<\/h2>\n\n\n\n<p>In Go, string literals have two forms: plain and raw string literals.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Plain string literals <\/strong>are enclosed in double-quotes. They can include escape sequences. Go converts these escape sequences to their corresponding characters. For example, <code>\\n<\/code> for newline, <code>\\t<\/code> for tab, <code>\\\\<\/code> for backslash.<\/li>\n\n\n\n<li><strong>Raw string literals<\/strong> are enclosed in backticks. They do not support escape sequences The raw string literals can be useful for multiline strings or strings that include many special characters like HTML code or regular expressions.<\/li>\n<\/ul>\n\n\n\n<p>Here&#8217;s an example of a plain string literal:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\">message := <span class=\"hljs-string\">\"They said\\n\\\"Go is awesome!\\\".\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this string, Go converts <code>\\n<\/code> to the newline character and escapes the double quotes <code>\"<\/code>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\"><span class=\"hljs-keyword\">package<\/span> main\n\n<span class=\"hljs-keyword\">import<\/span> <span class=\"hljs-string\">\"fmt\"<\/span>\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">func<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span><\/span> {\n    message := <span class=\"hljs-string\">\"They said\\n\\\"Go is awesome!\\\".\"<\/span>\n    fmt.Println(message)\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\">They said: \n<span class=\"hljs-string\">\"Go is awesome\"<\/span>.<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>It&#8217;s equivalent to the following raw string literal:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\"><span class=\"hljs-keyword\">package<\/span> main\n\n<span class=\"hljs-keyword\">import<\/span> <span class=\"hljs-string\">\"fmt\"<\/span>\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">func<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span><\/span> {\n    message := <span class=\"hljs-string\">`They said: \n\"Go is awesome\".`<\/span>\n    fmt.Println(message)\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\">They said: \n<span class=\"hljs-string\">\"Go is awesome\"<\/span>.<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Getting length<\/h2>\n\n\n\n<p>The built-in <code>len()<\/code> function returns the number of bytes required to represent Unicode characters in a string:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\">message := <span class=\"hljs-string\">\"elite\"<\/span>\nfmt.Println(<span class=\"hljs-built_in\">len<\/span>(message))<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\"><span class=\"hljs-number\">5<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>If a string includes characters other than ASCII, the <code>len()<\/code> function may return a number that is higher than the number of characters in the string. For example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\">message := <span class=\"hljs-string\">\"\u00e9lite\"<\/span>\nfmt.Println(<span class=\"hljs-built_in\">len<\/span>(message))<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\"><span class=\"hljs-number\">6<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this example, the string <code>\"\u00e9lite\"<\/code> has 5 characters but 6 bytes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Accessing characters<\/h2>\n\n\n\n<p>To access individual characters in a string, you use index notation:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\"><span class=\"hljs-keyword\">string<\/span>&#91;index]<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Note that this returns the byte at the given <code>index<\/code>. String uses zero-based indexing, meaning that the first index is zero.<\/p>\n\n\n\n<p>For example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-14\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\"><span class=\"hljs-keyword\">package<\/span> main\n\n<span class=\"hljs-keyword\">import<\/span> <span class=\"hljs-string\">\"fmt\"<\/span>\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">func<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span><\/span> {\n    message := <span class=\"hljs-string\">\"elite\"<\/span>\n    fmt.Printf(<span class=\"hljs-string\">\"%c\"<\/span>,message&#91;<span class=\"hljs-number\">0<\/span>])\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-14\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-15\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\"><span class=\"hljs-number\">101<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-15\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><code>101<\/code> is the Unicode value of the character <code>'e'<\/code>. To show the character, you can use the <code>Printf<\/code> function from the fmt package:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-16\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\"><span class=\"hljs-keyword\">package<\/span> main\n\n<span class=\"hljs-keyword\">import<\/span> <span class=\"hljs-string\">\"fmt\"<\/span>\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">func<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span><\/span> {\n    message := <span class=\"hljs-string\">\"elite\"<\/span>\n    fmt.Printf(<span class=\"hljs-string\">\"%c\"<\/span>,message&#91;<span class=\"hljs-number\">0<\/span>])\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-16\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-17\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\">e<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-17\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Concatenating strings<\/h2>\n\n\n\n<p>To concat two strings into a single string, you use the <code>+<\/code> operator. For example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-18\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\"><span class=\"hljs-keyword\">package<\/span> main\n\n<span class=\"hljs-keyword\">import<\/span> <span class=\"hljs-string\">\"fmt\"<\/span>\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">func<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span><\/span> {\n    message := <span class=\"hljs-string\">\"Hi\"<\/span> + <span class=\"hljs-string\">\" Bob\"<\/span>\n    fmt.Println(message)\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-18\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-19\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\">Hi Bob<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-19\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Comparing strings<\/h2>\n\n\n\n<p>To compare two strings, you use comparison operators such as <code>==<\/code>, <code>!=<\/code>, <code>&lt;=<\/code>, <code>&gt;<\/code>, <code>&gt;=<\/code>, <code>&lt;<\/code>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-20\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\"><span class=\"hljs-keyword\">package<\/span> main\n\n<span class=\"hljs-keyword\">import<\/span> <span class=\"hljs-string\">\"fmt\"<\/span>\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">func<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span><\/span> {\n    name := <span class=\"hljs-string\">\"Joe\"<\/span>\n    result := name == <span class=\"hljs-string\">\"Joe\"<\/span> <span class=\"hljs-comment\">\/\/ true<\/span>\n    fmt.Println(result)\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-20\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-21\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\">Hi Bob<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-21\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Converting strings and other types<\/h2>\n\n\n\n<p>To convert between strings and values of other types, you use functions from the <a href=\"https:\/\/pkg.go.dev\/strconv\">strconv package<\/a>. For example, the following illustrates how to convert an integer (<code>200<\/code>) to a string:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-22\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\"><span class=\"hljs-keyword\">package<\/span> main\n\n<span class=\"hljs-keyword\">import<\/span> (\n    <span class=\"hljs-string\">\"fmt\"<\/span>\n    <span class=\"hljs-string\">\"strconv\"<\/span>\n)\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">func<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span><\/span> {\n    i := <span class=\"hljs-number\">200<\/span>\n    str := strconv.Itoa(i)\n    fmt.Println(str) <span class=\"hljs-comment\">\/\/ Output: 200<\/span>\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-22\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-23\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\"><span class=\"hljs-number\">200<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-23\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">String functions<\/h2>\n\n\n\n<p>The <a href=\"https:\/\/pkg.go.dev\/strings\" target=\"_blank\" rel=\"noreferrer noopener\">strings<\/a> package includes many useful string functions for working with strings effectively. Here are some common ones:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-24\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\"><span class=\"hljs-keyword\">package<\/span> main\n\n<span class=\"hljs-keyword\">import<\/span> (\n    <span class=\"hljs-string\">\"fmt\"<\/span>\n    <span class=\"hljs-string\">\"strings\"<\/span>\n)\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">func<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span><\/span> {\n    str := <span class=\"hljs-string\">\"Hi there!\"<\/span>\n\n    <span class=\"hljs-comment\">\/\/ Contains<\/span>\n    fmt.Println(strings.Contains(str, <span class=\"hljs-string\">\"there\"<\/span>)) <span class=\"hljs-comment\">\/\/ Output: true<\/span>\n\n    <span class=\"hljs-comment\">\/\/ Count<\/span>\n    fmt.Println(strings.Count(str, <span class=\"hljs-string\">\"e\"<\/span>)) <span class=\"hljs-comment\">\/\/ Output: 2<\/span>\n\n    <span class=\"hljs-comment\">\/\/ HasPrefix<\/span>\n    fmt.Println(strings.HasPrefix(str, <span class=\"hljs-string\">\"H\"<\/span>)) <span class=\"hljs-comment\">\/\/ Output: true<\/span>\n\n    <span class=\"hljs-comment\">\/\/ HasSuffix<\/span>\n    fmt.Println(strings.HasSuffix(str, <span class=\"hljs-string\">\"!\"<\/span>)) <span class=\"hljs-comment\">\/\/ Output: true<\/span>\n\n    <span class=\"hljs-comment\">\/\/ Index<\/span>\n    fmt.Println(strings.Index(str, <span class=\"hljs-string\">\"there\"<\/span>)) <span class=\"hljs-comment\">\/\/ Output: 3<\/span>\n\n    <span class=\"hljs-comment\">\/\/ ToUpper<\/span>\n    fmt.Println(strings.ToUpper(str)) <span class=\"hljs-comment\">\/\/ Output: HI THERE!<\/span>\n\n    <span class=\"hljs-comment\">\/\/ ToLower<\/span>\n    fmt.Println(strings.ToLower(str)) <span class=\"hljs-comment\">\/\/ Output: hi there!<\/span>\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-24\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Strings are immutable sequences of bytes, which represent text in Go.<\/li>\n\n\n\n<li>Plain string literals are enclosed in double quotes while raw string literals are enclosed in backtick.<\/li>\n\n\n\n<li>Use the <code>+<\/code> operator to concatenate strings<\/li>\n\n\n\n<li><code>len(string)<\/code> returns the number of bytes of the string.<\/li>\n\n\n\n<li>Use comparison operators to compare two strings.<\/li>\n\n\n\n<li>Use functions from the <code>strconv<\/code> package to convert strings to values of other types.<\/li>\n\n\n\n<li>Use functions from the <code>strings<\/code> package to manipulate strings.<\/li>\n<\/ul>\n<div class=\"helpful-block-content\" data-title=\"\">\n\t<div class=\"wth-question\">Was this tutorial helpful?<\/div>\n\t<div class=\"wth-thumbs\">\n\t\t<button\n\t\t\tdata-post=\"287\"\n\t\t\tdata-post-url=\"https:\/\/www.gotutorial.org\/go-tutorial\/go-string\/\"\n\t\t\tdata-post-title=\"Go String\"\n\t\t\tdata-response=\"1\"\n\t\t\tclass=\"wth-btn-rounded wth-yes-btn\"\n\t\t>\n\t\t\t<svg\n\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\tfill=\"none\"\n\t\t\t\tstroke=\"currentColor\"\n\t\t\t\tstroke-width=\"2\"\n\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\tclass=\"feather feather-thumbs-up block w-full h-full\"\n\t\t\t>\n\t\t\t\t<path\n\t\t\t\t\td=\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"\n\t\t\t\t><\/path>\n\t\t\t<\/svg>\n\t\t\t<span class=\"sr-only\"> Yes <\/span>\n\t\t<\/button>\n\n\t\t<button\n\t\t\tdata-response=\"0\"\n\t\t\tdata-post=\"287\"\n\t\t\tdata-post-url=\"https:\/\/www.gotutorial.org\/go-tutorial\/go-string\/\"\n\t\t\tdata-post-title=\"Go String\"\n\t\t\tclass=\"wth-btn-rounded wth-no-btn\"\n\t\t>\n\t\t\t<svg\n\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\tfill=\"none\"\n\t\t\t\tstroke=\"currentColor\"\n\t\t\t\tstroke-width=\"2\"\n\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t>\n\t\t\t\t<path\n\t\t\t\t\td=\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"\n\t\t\t\t><\/path>\n\t\t\t<\/svg>\n\t\t\t<span class=\"sr-only\"> No <\/span>\n\t\t<\/button>\n\t<\/div>\n\n\t<div class=\"wth-form hidden\">\n\t\t<div class=\"wth-form-wrapper\">\n\t\t\t<div class=\"wth-title\"><\/div>\n\t\t\t<textarea class=\"wth-message\"><\/textarea>\n\t\t\t<input type=\"button\" name=\"wth-submit\" class=\"wth-btn wth-btn-submit\" id=\"wth-submit\" \/>\n\t\t\t<input type=\"button\" class=\"wth-btn wth-btn-cancel\" value=\"Cancel\" \/>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>In this tutorial, you will learn about Go string type and how to manipulate strings effectively.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":10,"menu_order":5,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-287","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.gotutorial.org\/wp-json\/wp\/v2\/pages\/287","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gotutorial.org\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.gotutorial.org\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.gotutorial.org\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gotutorial.org\/wp-json\/wp\/v2\/comments?post=287"}],"version-history":[{"count":6,"href":"https:\/\/www.gotutorial.org\/wp-json\/wp\/v2\/pages\/287\/revisions"}],"predecessor-version":[{"id":406,"href":"https:\/\/www.gotutorial.org\/wp-json\/wp\/v2\/pages\/287\/revisions\/406"}],"up":[{"embeddable":true,"href":"https:\/\/www.gotutorial.org\/wp-json\/wp\/v2\/pages\/10"}],"wp:attachment":[{"href":"https:\/\/www.gotutorial.org\/wp-json\/wp\/v2\/media?parent=287"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}