1. A
Explanation: In Go, variables are declared using the `var` keyword followed by the variable name and its type.
2. B
Explanation: The `defer` keyword schedules a function to run after the surrounding function completes, useful for cleanup operations.
3. A
Explanation: The default value for a variable in Go is its zero value, with `0` for numeric types.
4. A
Explanation: A constant in Go is declared using the `const` keyword, followed by the constant name and value.
5. B
Explanation: The `go` keyword is used to launch a new goroutine, which allows functions to run concurrently.
6. A
Explanation: The `len` function in Go returns the number of elements in a collection, such as an array or slice, and the return type is an integer.
7. C
Explanation: Go handles errors using the return value of functions; errors are usually returned as the last return value.
8. B
Explanation: The correct syntax for a Go `for` loop is `for i = 0; i < 10; i++ {}`.
9. B
Explanation: An array in Go is a fixed-size collection of elements of the same type. Slices are flexible-sized.
10. B
Explanation: Accessing an index outside of an array’s bounds in Go will result in a runtime panic.
11. B
Explanation: A goroutine is a lightweight thread of execution in Go that runs concurrently with other goroutines.
12. D
Explanation: To wait for a goroutine to complete, we use a `wait group` or a `channel` in Go.
13. C
Explanation: Data is sent through a Go channel using the `<-channel` syntax.
14. C
Explanation: The `make` function in Go creates and initializes slices, maps, and channels.
15. D
Explanation: A map in Go is declared with the syntax `mapvalue`, where `key` and `value` are the types for the map.
16. B
Explanation: Arrays are fixed-size collections in Go. A `slice` is more flexible and dynamically resizable.
17. A
Explanation: Packages are imported using the `import “packageName”` syntax in Go.
18. C
Explanation: The `fmt.Println` function is used to output text to the console, with a newline at the end.
19. A
Explanation: Functions in Go are defined using the `func` keyword, followed by the function name and parameters.
20. A
Explanation: Go’s concurrency is primarily handled using goroutines and channels.
21. A
Explanation: The `select` statement in Go allows a goroutine to wait on multiple channels, selecting one that is ready.
22. B
Explanation: An interface defines a set of methods a type must implement in Go, allowing polymorphism.
23. B
Explanation: The `recover` function is used to handle a panic in Go, allowing the program to continue after a panic.
24. B
Explanation: A struct in Go is a composite data type that groups together variables (fields) of different types.
25. C
Explanation: To check if a key exists in a Go map, you check if `map != nil`.
26. B
Explanation: The `strconv.Atoi` function is used to convert a string to an integer in Go.
27. B
Explanation: The `defer` keyword delays the execution of a function until the surrounding function completes.
28. A
Explanation: In Go, integer division truncates the result, so `10 / 3` gives `3`.
29. A
Explanation: Pointers in Go are declared using the `&` operator, which provides the memory address of a variable.
30. B
Explanation: The `strconv.Itoa` function is used to convert an integer to a string in Go.
31. A
Explanation: A slice in Go is declared with `[]type{}` syntax, where `type` is the type of the elements.
32. C
Explanation: The `…` syntax in a function parameter allows passing a variable number of arguments in Go.
33. A
Explanation: The `new` keyword creates a pointer to a zero-initialized value of a specified type in Go.
34. A
Explanation: Interfaces in Go define the methods that a type must implement, allowing the type to satisfy the interface.
35. A
Explanation: In Go, strings are concatenated using the `+` operator.
36. B
Explanation: The `break` statement exits a loop or a switch case completely in Go.
37. C
Explanation: The zero value of a boolean type in Go is `false`.
38. A
Explanation: Arrays in Go are automatically initialized with default values for their type, such as `0` for integers.
39. C
Explanation: To close a channel in Go, the `close(channel)` function is used.
40. B
Explanation: The `break` statement completely exits the current loop or switch block in Go.
41. A
Explanation: In Go, strings are immutable, meaning their values cannot be directly modified.
42. B
Explanation: Passing a pointer to a function allows the function to modify the original value in Go.
43. C
Explanation: In Go, multiple return values can be handled by assigning them to separate variables.
44. C
Explanation: Channels in Go are declared using the `make(chan type)` syntax, where `type` is the type of data the channel will carry.
45. A
Explanation: To pass a struct by reference, you pass a pointer to the struct in Go.
46. A
Explanation: Go supports multiple conditions in an `if` statement using `&&` (and) and `||` (or) operators.
Prepare for the GO - Golang Online Test exam with our free practice test modules. Each quiz covers key topics to help you pass on your first try.