📖 Scenario: Imagine you are organizing a list of names for a small event. You want to understand how strings work as a data structure to help you manage and manipulate these names easily.
🎯 Goal: You will create a string variable, check its length, access individual characters, and print the results to see how strings behave like a data structure, not just plain text.
📋 What You'll Learn
Create a string variable called name with the value "Alice".
Create an integer variable called length that stores the length of name.
Access the first character of name and store it in a variable called firstChar.
Print the length and firstChar variables.
💡 Why This Matters
🌍 Real World
Understanding strings as data structures helps when working with names, messages, or any text data in software like chat apps, databases, or websites.
💼 Career
Many programming jobs require manipulating text data efficiently. Knowing strings as data structures is a foundation for tasks like parsing, searching, and formatting text.
Progress0 / 4 steps
1
Create the string variable
Create a string variable called name and set it to "Alice".
DSA Go
Hint
Use name := "Alice" to create the string variable.
2
Get the length of the string
Create an integer variable called length that stores the length of the string name using len(name).
DSA Go
Hint
Use length := len(name) to get the string length.
3
Access the first character of the string
Create a variable called firstChar that stores the first character of name using name[0]. Convert it to a string using string(name[0]).
DSA Go
Hint
Use firstChar := string(name[0]) to get the first character as a string.
4
Print the length and first character
Print the variables length and firstChar using fmt.Println.
DSA Go
Hint
Use fmt.Println(length) and fmt.Println(firstChar) to print the values.
Practice
(1/5)
1. Why are strings considered a data structure and not just plain text?
easy
A. Because strings are only used for displaying text on screen
B. Because strings only contain letters and no other characters
C. Because strings are always immutable and cannot be changed
D. Because strings store characters in a specific order and allow access by position
Solution
Step 1: Understand what a data structure is
A data structure organizes data so it can be accessed and modified efficiently. Strings store characters in order, which fits this definition.
Step 2: Analyze string properties
Strings allow access to each character by its position (index), showing they have structure beyond plain text.
Final Answer:
Because strings store characters in a specific order and allow access by position -> Option D
Quick Check:
Strings = ordered characters [OK]
Hint: Strings have order and indexing, so they are data structures [OK]
Common Mistakes:
Thinking strings only contain letters
Assuming strings are just for display
Believing strings cannot be changed
2. Which of the following is the correct way to get the length of a string s in Go?
easy
A. size(s)
B. length(s)
C. len(s)
D. s.length()
Solution
Step 1: Recall Go syntax for string length
In Go, the built-in function len() returns the length of strings and slices.
Step 2: Check other options
Functions like length(), s.length(), and size() are not valid in Go for strings.
Final Answer:
len(s) -> Option C
Quick Check:
Use len() for string length in Go [OK]
Hint: Use len() to get string length in Go [OK]
Common Mistakes:
Using s.length() like in other languages
Trying length() function which doesn't exist in Go
Using size() which is invalid for strings
3. What will be the output of this Go code?
package main
import "fmt"
func main() {
s := "hello"
fmt.Println(string(s[1]))
}
medium
A. e
B. 104
C. h
D. Error
Solution
Step 1: Understand string indexing in Go
Indexing a string like s[1] returns a byte (uint8) representing the ASCII code of the character.
Step 2: Analyze the code output
string(s[1]) converts the byte to a string of length 1, so it prints 'e'.
Final Answer:
e -> Option A
Quick Check:
string(s[1]) = 'e' [OK]
Hint: s[index] is byte; string(s[index]) converts to char [OK]
Common Mistakes:
Thinking s[1] prints ASCII number
Expecting error due to indexing
Confusing byte and string conversion
4. Identify the error in this Go code snippet:
package main
import "fmt"
func main() {
s := "world"
s[0] = 'W'
fmt.Println(s)
}
medium
A. Strings are immutable; cannot assign to s[0]
B. Missing import for fmt package
C. Incorrect syntax for printing string
D. No error; code runs fine
Solution
Step 1: Understand string mutability in Go
Strings in Go are immutable, meaning you cannot change characters by assigning to an index.
Step 2: Analyze the code error
The line s[0] = 'W' tries to modify the first character, which causes a compile-time error.
Final Answer:
Strings are immutable; cannot assign to s[0] -> Option A
Quick Check:
Strings immutable = no s[index] assignment [OK]
Hint: Strings cannot be changed by index assignment [OK]
Common Mistakes:
Trying to modify string characters directly
Ignoring immutability of strings
Assuming code runs without error
5. Given the string s := "GoLang", which code snippet correctly reverses the string and prints it in Go?
hard
A. s = s[::-1]; fmt.Println(s)
B. for i := len(s)-1; i >= 0; i-- { fmt.Print(string(s[i])) }
C. fmt.Println(reverse(s)) // reverse is built-in
D. for i := 0; i < len(s); i++ { fmt.Print(s[len(s)-i]) }
Solution
Step 1: Check each option for correctness
for i := len(s)-1; i >= 0; i-- { fmt.Print(string(s[i])) } uses a for loop from the last index to zero, printing each character converted from byte to string. This correctly reverses the string.
Step 2: Analyze other options
fmt.Println(reverse(s)) // reverse is built-in is invalid because Go has no built-in reverse function. s = s[::-1]; fmt.Println(s) uses Python slice syntax, invalid in Go. for i := 0; i < len(s); i++ { fmt.Print(s[len(s)-i]) } has an off-by-one error accessing s[len(s)-i], which causes runtime error.
Final Answer:
for i := len(s)-1; i >= 0; i-- { fmt.Print(string(s[i])) } -> Option B
Quick Check:
Reverse string with backward loop [OK]
Hint: Loop backward from len(s)-1 to 0 to reverse string [OK]
Common Mistakes:
Using Python slice syntax in Go
Assuming built-in reverse function exists
Off-by-one errors in indexing
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.