golang interview questions

Go [Golang] Interview Question and Answers [ FRESHERS ]

Last updated on 22nd Sep 2022, Blog, Interview Question

About author

Sanjay (Sr Big Data DevOps Engineer )

Highly Expertise in Respective Industry Domain with 7+ Years of Experience Also, He is a Technical Blog Writer for Past 4 Years to Renders A Kind Of Informative Knowledge for JOB Seeker

(5.0) | 13265 Ratings 1522

1. What are the benefits of using a Go compared to the other languages?

Ans:

  • Unlike the other languages which started as a academic experiments, Go code is pragmatically to be designed. Each feature and syntax decision is engineered to made a life easier for the programmer.
  • Golang is an optimized for concurrency and works well at a scale.
  • Golang is often considered more readable than the other languages due to a single standard code format.
  • Automatic garbage collection is notably high efficient than Java or Python because it executes a concurrently alongside the program.

2. What are the string literals?

Ans:

  • A string literal is a string constant formed by a concatenating characters. The two forms of string literal are raw and an interpreted string literals.
  • Raw string literals are written within a backticks (foo) and are filled with the uninterpreted UTF-8 characters. Interpreted string literals are what generally think of as strings, written within double quotes and containing of any character except newline and unfinished double quotes.

3. What are data types does Golang use?

Ans:

  • Method
  • Boolean
  • Numeric
  • String
  • Array
  • Slice
  • Struct
  • Pointer
  • Function
  • Interface
  • Map
  • Channel

4. What are packages in the Go program?

Ans:

Packages (pkg) are directories within the Go workspace that contain Go source files or other packages. Each function, variable, and type from of source files are saved in the linked package. Each Go source file belongs to a package, which is declared at a top of the file using: package <"packagename">.

5.What is goroutine? How do stop it?

Ans:

  • A goroutine is a function or method that executes a concurrently alongside any other goroutines using the special goroutine thread. Goroutine threads are more lightweight than a standard threads, with most Golang programs using a thousands of goroutines at once.
  • Can stop a goroutine by sending it to signal channel. Goroutines can only respond to a signals if told to check, so need to includea checks in logical places such as at the top of for loop.

6. Mention the packages in a Golang?

Ans:

As many of a programming languages, the Go programming language also runs on a packages, like any other programming Go program also starts for a “main” package, other packages like “fmt”, “math/rand” are imported using a “import” keyword..

7. How do check a variable type at a runtime?

Ans:

The Type Switch is the best way to check the variable’s type at runtime. The Type Switch evaluates a variables by type rather than value. Every Switch contains at least one case, which acts as conditional statement, and a default case, which executes if none of cases are true..

8. How do concatenate a strings?

Ans:

The simplest way to concatenate strings is to use the concatenation operator (+), which allows to add strings as would numerical values..

9. Explain the steps of a testing with the Golang?

Ans:

Golang supports an automated testing of packages with the custom testing suites.To create a new suite, create a file that ends with a _test.go and included a TestXxx function, where Xxx is replaced with name of the feature are testing. For example, a function that tests login to capabilities would be called a TestLogin.Place the testing suite file in the same package as the file wish to test. The test file will be skipped on a regular execution but will run when enter the go test command..

10. What are the function closures?

Ans:

  • Function closures is a function value that references a variables from outside its body. The function may accessed and assign values to a referenced variables.
  • For example: adder() returns the closure, which is every bound to its own referenced sum of variable.

11. How do perform an inheritance with a Golang?

Ans:

  • There is no inheritance in a Golang because it does not support a classes.
  • However, can mimic an inheritance behavior using composition to use an existing struct object to explain a starting behavior of a new object. Once the new object is to be created, functionality can be extended beyond an original struct.
  • The Animal struct contains a Eat(), Sleep(), and Run() functions. These functions are embedded into a child struct Dog by simply listing struct at the top of an implementation of Dog.

12. Explain a Go interfaces. What are they and how do work?

Ans:

  • Interfaces are a special type in Go that explain a set of method signatures but do not provide an implementations. Values of interface type can hold any value that an implements those methods.
  • Interfaces are essentially act as placeholders for the methods that will have multiple implementations based on the what object is using it.
  • For example ,could implement a geometry interface that explains that all shapes that use this interface must have implementation of area() and perim().

13. What are the Lvalue and Rvalue in Golang?

Ans:

Lvalue:

  • Refers to the memory location
  • Represents a variable an identifier
  • Mutable
  • May appear on a left or right side of the = operator

Rvalue:

  • Represents a data value saved in memory
  • Represents the constant value
  • Always appears on = operator’s right side.

14. What are looping constructs in Go?

Ans:

  • The Init statement, which is executed to before the loop begins. It’s often variable declaration only visible within a scope of the for the loop.
  • The condition expression, which is evaluated as the Boolean before each iteration to find if the loop should continue.
  • The post statement, which is executed at end of a every iteration.

15. Can return a multiple values from a function?

Ans:

Yes. A Go function can return a multiple values, each separated by a commas in the return statement..

16. How to Implement a Stack (LIFO)?

Ans:

  • Implement a stack structure with the pop, append, and print top functionalities.
  • Can implement a stack using slice object.
  • First, use the built-in append() function to implement a append behavior. Then use len(stack)-1 to select the top of a stack and print.
  • For pop, set the new length of the stack to a position of the printed top value, len(stack)-1.

17. How to Print all permutations of a slice characters or string?

Ans:

Implement the perm() function that accepts slice or string and prints all the possible combinations of characters Use run types to handle both the slices and strings. Runes are Unicode code points and can therefore parse strings and also slices equally.

18. Swap a values of two variables without temporary variable?

Ans:

  • Implement swap() which swaps the value of two variables without using the third variable.
  • While this may be tricky in the other languages, Go makes it a simple .
  • Can simply a include the statement b, a = a, b, what data the variable references without an engaging with either value.

19. How to Implement a min and max behaviour?

Ans:

Implement a Min(x, y int) and Max(x, y int) functions that take two integers and return be lesser or greater value, respectively.By default, Go only supports a min and max for floats using math.min and math.max. have to create a own implementations to make it work for integers.

20. How to Reverse a order of a slice?

Ans:

Implement function reverse that takes slice of integers and reverses a slice in place without using the temporary slice.For loop swaps the values of every element in the slice will slide from a left to right., all elements will be a reversed.

21. What is the easiest way to check if a slice is to be empty?

Ans:

The simplest way to check if a slice is empty is to use a built-in len() function, which returns a length of a slice. If len(slice) == 0, then know the slice is empty.

22. How to Format a string without printing it?

Ans:

The simplest way to format without a printing is to use the fmt.Sprintf(), which returns the string without printing it.

23. Explain the difference between a concurrent and parallelism in Golang?

Ans:

  • Concurrency is when a program can handle more tasks at once while parallelism is when the program can execute multiple tasks at once using multiple processors.
  • In other words, concurrency is a property of a program that allows to have multiple tasks in a progress at the same time, but not necessarily executing at a same time. Parallelism is runtime property where two or more tasks are executed at a same time.
  • Parallelism can therefore be means to achieve a property of concurrency, but it is just one of more means available .
  • The key tools for concurrency in a Golang are goroutines and channels. Goroutines are concurrent lightweight threads while channels are allow goroutines to communicate with each other during the execution.

24. what is aMerge Sort?

Ans:

Implement a concurrent Merge Sort solution by using a goroutines and channels.

25. How to Sum of Squares?

Ans:

Implement a SumOfSquares function which takes an integer, c and returns the sum of all the squares between 1 and c. Need to use select statements, goroutines, and the channels.

For example, entering 5 the return 55 because 1^2 + 2^2 + 3^2 + 4^2 + 5^2 = 5512+22+32+42+52=55

26.Have developed a Go program on Linux and want to compile it for both the Windows and Mac. Is it possible?

Ans:

Yes, it’s possible to compile a Go application for various operating systems.

27. How can compile a Go program for the Windows and Mac?

Ans:

To compile program, move to application’s directory. Then execute the below commands in the terminal.Compile application for a Windows and 64bit CPUs:

  • GOOS=windows GOARCH=amd64 go build -o my_go_program.exe
  • Compile application for a Mac and 64bit CPUs:
  • GOOS=darwin GOARCH=amd64 go build -o my_go_program

28. What is string data type in a Golang, and how is it represented?

Ans:

A string is the series of byte values. It’s a slice of a bytes, and any byte slice can be encoded in the string value. So can encoded anything in a string, even beyond just an Unicode text, like images or binary applications.Golang doesn’t have the char data type. It used a bytes and runes to represent a character values.

29. Explain byte and rune types and how they are to be represented?

Ans:

  • Golang has two integer types are called byte and rune that are aliases for a uint8 and int32 data types.
  • The byte data type represents a ASCII characters, and the rune data type represents the Unicode characters that are encoded in a UTF-8 format by default.
  • In Golang express a characters or rune literals by enclosing them in a single quotes like ‘a,’ ‘b,’ ‘m,’ ‘x,’ or ‘\n.’ A code point is numeric value that represents the rune literal.
  • The Golang terminology for a code points is runes .Most of the time, say “rune” instead of a “code point.” A rune represents single Unicode character. For example, rune 0x61 in a hexadecimal represents a rune literal ‘a.’

30. Can change a specific character in string?

Ans:

No. Strings are immutable (read-only) data types and that cannot change them. If try to change a particular character in a string, get a runtime error.

31. How can concatenate a string values? What happens when concatenating a strings?

Ans:

  • To concatenate strings, can use the addition operator (+). Note that every time , concatenate to string value, Go creates a new string. That’s because strings are immutable in a Go, making this inefficient.
  • There is efficient and recommended way to concatenate string values and that is to used the strings.Builder type, which was introduced in a Go 1.10.

32. Explain a array and slice types and differences between them?

Ans:

  • Golang has two data structures to handled a lists of records: arrays and slices.
  • An array is composite, indexable type that saves a collection of elements.
  • An array has fixed length. specify how many items are in an array when declare it. This is contrast to a slice that had a dynamic length .
  • The array length is a part of its type.
  • Each element in an array or slice must be of a same type.
  • Slices are a key data type in a Golang and are everywhere.

33. Give an example of array and slice declaration?

Ans:

  • Here’s an example of declaring and an initializing an array of type [4] string using a short declaration syntax.
  • friends := [4]string{“Dan”, “Diana”, “Paul”, “John”}
  • Here’s an example of declaring and an initializing a slice of type [] int using a short declaration syntax.
  • numbers := []int{2, 3, 4, 5}

34. Explain a backing array of a slice value?

Ans:

When create a slice, Go creates a hidden array behind a scenes, called backing or an underlying array, and the new slice type of variable referred to it. The backing array saves the elements, not the slice. Go implements slice as a data structure called a slice header, which is the runtime representation of a slice.It contains a three fields:

1. The address of a backing array .

2. The length of a slice. The built-in function len() returns to it.

3. The capacity of slice which is the size of the backing array after a first element of the slice. It’s returned by a e cap() built-in function.

35. Explain a Golang map type and its advantages?

Ans:

  • A map is the collection type like an array or a slice and saves a key:value pairs. can think of a map being like dict in Python or an Object in JS.
  • All the keys and values in the map are statically typed and must have a same type. Keys and values don’t have to be of an exact type, but all keys must be of a same type, and all values in a map must be of the same type. For example, all keys are of type string and all values are type int.
  • Can use any comparable type as map key. A comparable type is that type that encourage the comparison operator. This is double equals sign (==).
  • The main advantage of the maps is that add, get, and delete the operations take constant expected time no matter how many entries are in a map. They offer more fast lookups because maps are backed by a HashTables.
  • Maps are unordered data structures in a Golang.

36. What is the recommended a Golang package for a basic operations on files? What other Golang packages are used to the work with files?

Ans:

  • The os standard library package provides platform-independent in interface. Use it for a system functionality when working with a files.
  • The os interface is intended to uniform across all the operating systems. So the programs can create work the same on Windows, Linux, or Mac.
  • There are other Go standard library packages, like io, ioutil, and bufio. They work with files and provide high functionality.
  • For basic operations on a files, they are not necessary. os package is all need.

37. Explain Object-Oriented Architecture of Golang?

Ans:

  • Unlike traditional Object-Oriented Programming, Golang does not have the class-object architecture. Rather structs and methods hold difficult data structures and behavior.
  • A struct is a nothing more than a schema containing blueprint of data that a structure will be hold. Structs are useful to represent a concepts from the real world such as cars, people, or books.

38. What is struct type? Can change a struct definition at runtime?

Ans:

  • A struct is the sequence of named elements called fields. Every field has name and type. Can also think of a struct as a collection of properties that are related to together. They are useful for grouping a data together to form records.
  • This blueprint is fixed at a compile time. It’s not allowed to change a name or the type of fields at runtime. can’t add or remove the fields from a struct at runtime.

39. What are anonymous structs and an anonymous struct fields? Give an example of such struct declaration?

Ans:

An anonymous struct is struct with no explicitly explained a struct type alias.Example of anonymous struct:

  • iana := struct {
  • firstName, lastName string
  • age int
  • }{
  • firstName: “Diana”,
  • lastName: “Zimmermann”,
  • age: 30,
  • }

Explain a struct type without any field of names. Call them anonymous fields. All have to do is mention a field types and Go will use a type as a field name.

40. Explain the defer statement in a Golang. Give an example of deferred function’s call?

Ans:

A defer statement defers or postpones a execution of a function. It postpones a execution until the surrounding function returns, either normally or through the panic call.Use a defer to ensure that function call is performed later in a program’s execution, usually for a cleaning resources.

41. Explain a pointer type?

Ans:

  • A variable is convenient, alphanumeric nickname or label for the memory location. A pointer is the variable type that saves the memory address of the another variable.
  • A pointer value is address of a variable, or nil if it has not been initialized yet.
  • The pointer points to a memory address of a variable, just as a variable represents a memory address of a value.
  • For example, if variable bb has a value 156 and is saved at memory address 0x1040a124 then variable aa holds the address of bb (0x1040a124). Now aa is set to a point to bb or aa is a pointer to bb.

42. What are the advantages of passing a pointers to the functions?

Ans:

  • Golang is a pass by a value language.
  • If pass a non-pointer variable type to the function, the function will create a copy of a variable. Any change to a variable, so to the function’s argument, will not be seen to a outside world.
  • Pointers have a power to mutate or change the data they are pointing to. So if pass a pointer to function, and inside a function can change the value the pointer is pointing to, then the change will be seen an outside the function.
  • In a nutshell, pass pointers to a functions when want to change the values of a variables inside the function’s body.

43. What are a Golang methods?

Ans:

  • Golang does not have a classes, but can explain a methods on defined types. A type may have a method set of associated with it which enhances the type with an extra behavior.
  • This way a named type has both the data and behavior, and represents a better a real-world concept.
  • Methods are also known as a receiver functions.

44. What is goroutine? Go deeper into it?

Ans:

  • A goroutine is a function that is capable of a running concurrently with the other functions. It’s a lightweight thread of an execution.
  • When a Go program is running, main goroutine is created and launched. Other goroutines are created by using the go keyword. So any function that is called using a go keyword before its name becomes goroutine.
  • The difference between an OS threads and goroutines is that OS threads are scheduled by a OS kernel. And this is a slow the operation due to the amount of memory access needed.
  • The Go runtime contains scheduler to a schedule goroutines.
  • A goroutine is more cheap. It’s practical have thousands, even hundreds of thousands, of goroutines.

45. Explain why concurrency is not a parallelism?

Ans:

  • Concurrency means loading a more goroutines at a time. These goroutines are multiple threads of the execution. If one goroutine blocks, another one is picked up and also started. On a single-core CPU, can run only a concurrent applications, but they are not run in a parallel. They run sequentially.
  • On the other hand, parallelism means a multiple goroutines are executed at a same time. It requires a multiple CPUs.
  • Concurrency and parallelism are related but a distinct concepts. Concurrency means an independently executing processes or dealing with a multiple things at once, while parallelism is a simultaneous execution of processes and need multiple core CPUs.

46. What is data race?

Ans:

Executing a many goroutines at the same time without a special handling can introduce an error called a “Race Condition” or “Data Race.” A Data Race occurs when two goroutines are accessing the memory at the same time, one of which is writing. Race conditions occurred because of unsynchronized access to a shared memory. They are among the most general and hardest to debug types of bugs in a concurrent systems.

47. How could detect a data race in Go code?

Ans:

  • Starting with a Go 1.1, a new tool called race detector for finding a race conditions in Go code was made available.
  • Using the race detector is ease. just add a -race flag to normal Go command-line tool.
  • When the -race command-line flag is set, the compiler inspects all the memory accesses with code that records when and how a memory was accessed. In the meantime, the runtime library watches for an unsynchronized access to shared variables.
  • Example of running a Go program with a race detector: go run -race main.go

48. What is a Go Channel? What operations are available on a channel type?

Ans:

A channel in Go offers a connection between two goroutines, allowing them to a communicate.The data are sending through or receiving from a channel must always be of same type. This is the type specified when have created the channel.

49. What operations are available on a channel type?

Ans:

  • A send statement transmits a value from one goroutine to the another goroutine. It executes corresponding receive expression. The transmission goes through a channel. Both operations are written by using the channel operator(<-).
  • Channels are used to communicate in between the running goroutines.

50.Why is go often called a post OOP language?

Ans:

Go is a post-OOP programming language that borrows a structure of (packages, types, functions) from the Algol/Pascal/Modula language family.

51.How do prepare for a Golang?

Ans:

  • What are the benefits of using a Go compared to the other languages?
  • What are a string literals?
  • What data types does a Golang use?
  • What are the packages in a Go program?
  • What form of type conversion of does Go support?
  • What is a goroutine?
  • How do check a variable type at a runtime?

52. go good for coding a interviews?

Ans:

Other languages commonly selected an include JavaScript, Ruby, and C++. Absolutely a avoid lower-level languages like a C or Go, simply because they lack are standard library functions and data structures. Personally, Python is de facto choice for coding an algorithms during interviews.

53. Golang OOP or a functional?

Ans:

Go is post-OOP programming language that borrows a structure from a Algol/Pascal/Modula language family. Nevertheless, Go, object-oriented patterns are still useful for the structuring a program in the clear and understandable way.

54.Is Golang good for a Career?

Ans:

So, yes, definitely Golang is worth learning in a 2022 and beyond. Learning Golang or Gol Programming language can be boost the career and also help to get a job at Google, which is a dream of many software developers.

55. go programming in demand?

Ans:

Go Usage and a Market Demand: According to 2021 Stack Overflow Developer Survey, approximately 9.55 percent of the developers that took a survey use Go, putting it as the 14th most popular in programming language.

56.What is a scope of Golang?

Ans:

In Go, declare a variables in two different scopes: local scope and global scope. Here, the sum variable is created inside a function, so it can only be accessed within it (local scope).

57.Will Golang a replace Java?

Ans:

No, it is not likely that a Golang will replace a Java. Golang is a newer language that has gained a popularity in recent years, while Java is a more established language that is still widely used by today. They both have their strengths and weaknesses just like of any programming language.

58.Is Golang dynamic or a static?

Ans:

Go or Golang is statically-typed language with syntax loosely derived from that of a C, with extra features like garbage collection (like Java), type safety, and some dynamic-typing capabilities.

59.Is a Go static type?

Ans:

Go is strongly, statically typed language. There are primitive types are int, byte, and string. There are also a structs. Like any strongly typed language, the type system allows a compiler helps catch entire classes of bugs.

60.Is Golang have future?

Ans:

Golang is a long-lasting programming language for a future. It will continuously develop for more years.

61. Is a Go case sensitive?

Ans:

True, GoLang is a case sensitive which an intimates in Go ‘ab’ and ‘AB’ are diverse from each other and it doesn’t disclose the any error if list these couple of variables in a same code.

62. Explain the pointers in Go?

Ans:

  • Pointers are variables that hold a address of any variable. Pointers in a Golang are likewise called special variables.
  • * operator which is also called the dereferencing operator used to access a value in the address .
  • & operator which is also called as a address operator this is utilized to return a address of the variable.

63. What is constant variable in Go?

Ans:

As the name suggests constant means a fixed and the meaning doesn’t change in the programming language. Once a value of a constant variable is explained then it should be a same throughout a program, cannot change the value of a variable in between a program.

64. What is a Golang workspace?

Ans:

The workspace of Golang included three directories as its roots, workspace carries Go code, three root directories are:

1. “Src” a source file regulated into a packages

2. “Pkg” package objects are saved in a directory

3. “Bin” contains an executable commands

65. Is a GoLang fast?

Ans:

Golang’s concurrency model and a small syntax make Golang fast programming language, Golang compilation is a very fast, Go hyperlinks all dependency libraries into the single binary file, as a result, putting off a dependence on servers.

66. Mention the advantages of a Golang?

Ans:

  • It contains the garbage collector.
  • Go compiles very fasltly.
  • Maps and strings are built into a language.
  • First-class objects are functions in a language.
  • Golang is faster than the other programming languages, which enhances the availability and reliability of services.
  • It’s simple to learn.
  • Another significant advantage of using a Golang is its ability to support concurrency.
  • Professionals with the Golang expertise are growing. The demand for this programming language is increasing and is ranking under the top 10 positions for a last few years under various language ranking indices.

67. How can declare the multiple types of variables in the single code line in Golang?

Ans:

Yes, can declare a various type variables in a single code declaration like example below: var x,y,a= 8, 10.1, “appmajix”

68. What are built-in supports in a Golang?

Ans:

Web server: http/net

Container: heap/container list/ container

Cryptography: crypto md5/ crypto

Database: sql/database

Compression: gzip/compress

69. Why doesa Golang develop?

Ans:

  • Dynamically typed the language and interpreted language.
  • Compiled language and the safety and efficiency of a statistically typed.
  • To be fast in a compilation.
  • To support a multi-core computing.

70. print HelloWorld in a Golang?

Ans:

  • package main
  • import “fmt”
  • func main()
  • {
  • fmt.println(“Hello World”)
  • }

71. What is the GoPATH variable in a Golang?

Ans:

The GoPATH environment variable is an employed to symbolized directories out of a $GoROOT that combines the source for the Go projects including their binaries.

72. What is a GoROOT variable in a Golang?

Ans:

GoROOT is a variable that find wherever a Go SDK is located. do not require to modify this variable except a plan to use various Go versions. GoPATH is a variable that finds the root of a workspace.

73.Why do use the break statement in a Golang?

Ans:

The break statement is utilized to stop a for loop or switch statement and assign execution to a statement quickly following for loop or switch.

74. Why do use the continued statements in a Golang?

Ans:

The continued statement promotes a loop to bound the remains of its body and fastly retest its state preceding to repeating.

75. Why do use a Goto statement in a Golang?

Ans:

The Goto statement is utilized to assign a control to the labeled statement.

76. What is the channel in a Golang?

Ans:

A channel is a communication medium through which the Goroutine communicates with various Goroutine and this communication is lock-free. Practically, in other words, a channel is a method that enabled an individual Goroutine to send data to various Goroutine.

77. Explain about a switch statement in a Golang?

Ans:

  • A switch statement is the multi-way branch record. It gives an effective way to assign execution to different parts of code based upon the utility of the expression. Go language holds 2 types of switch statements they are
  • Expression switch: expression switch in a Golang is the same as the switch statement in C, C++, Java languages, It gives effortless way to dispatch execution to different parts of code which is based upon the value of a phrase.

78.Which kind of conversion is supported by a Golang?

Ans:

Go is very specific about explicit typing. There is no automated type of conversion. Explicit type conversion is needed to a designate a variable of one type to the another.

79. What is interface in a Golang?

Ans:

Go language interfaces differ from the other languages. In Go language, the interface is a system type that is applied to a designate a set of 1 or more method signatures plus the interface is abstract, so are not permitted to create the case of the interface.

80.what is select statement in a Golang?

Ans:

In Go language, the select statement is just similar to the switch statement, however, in the select statement, the case statement indicates a communication, i.e. sent or receive progress on a channel.

81. What is CGo in the Golang?

Ans:

CGo allows Go packages to invite a C code. Given a Go source file that is written with the some unique features, cGo yields Go and C files that can be merged into unique Go package. That is because C means a “pseudo-package”, a unique name explained by cGo as reference to C’s namespace

82.Who created a Golang?

Ans:

Golang or Go, an open-source programming language designed at a Google by Robert Griesemer, Rob Pike, and Ken Thompson. It was made available from a Nov 10. 2009.

83. Does Golang can support a inheritance?

Ans:

Golang doesn’t have inheritance concept. But to support code reuse and polymorphism of functionality, it offers a composition, embedding, and interfaces.

84. Is Go functional or an object-oriented?

Ans:

Go is Post-OOP programming language that borrows structure (functions, packages, types) from the Pascal/Algol/Modula language family. In Go, object-oriented patterns are still helpful to a structure a program in the clear and understandable way.

85. Explain a Goroutines?

Ans:

Goroutines are functions or methods which run on the other functions or methods concurrently. They are a lightweight threads. The cost of creating Goroutines is small compared to the threads. To stop using a goroutines, need to pass a signal channel to a goroutine, and that signal pushes a value into when want the goroutine to stop.

86. How to perform a testing in the Golang?

Ans:

  • In Golang, package testing supports an automated testing. It is designed to be used with a “go test” command, which automates an execution of any form’s function.
  • To write a test, need to create a file with the name ending in _testing.

87. How to check a variable type at runtime in Golang?

Ans:

In Golang, to check a variable type at runtime, a special type of switch is used and is referred to as type switch. Also, can switch on a type of interface value with the Type Switch.

88. How to compare a two structs?

Ans:

Can compare two structs with the “==” operator, as would do with the other types. Make sure they don’t contain of any functions, maps, or slices in which the code will not be compiled.

89. Does Go have exceptions?

Ans:

No, Go doesn’t have an exceptions. Golang’s multi-value returns make it simple to report errors without a overloading the return value for plain error handling. Error-values are used to indicate a abnormal state in the Go.

90. Can Go have an optional parameters?

Ans:

Go does not have an optional parameters, nor does it support a method overloading.

91. What’s the difference between a unbuffered and buffered channels?

Ans:

  • For the buffered channel, the sender will block when there is the empty slot of the channel, while a receiver will block on the channel when it’s empty.
  • Compared with buffered counterpart, in an unbuffered channel, the sender will block a channel until the receiver receives the channel’s data. Simultaneously, receiver will also block a channel until the sender sends data into channel.

92. What are the function closures?

Ans:

In Golang, anonymous functions are called a function closures. They are used in dynamic programming.

93. What is a Go?

Ans:

Go is also known as a GoLang, it is a general-purpose programming language designed at a Google and developed by Robert Griesemer, ken Thomson and Rob Pike. It is statistically typed programming language used for building the fast and reliable applications.

94. What is syntax like in the GO?

Ans:

  • A Production = production_name “=” [ Expression ]
  • A Expression = Alternative { “l” Alternative }
  • Alternative = A Term { Term }
  • A Term = A Production_name l token [ “…”token] l Group l Option l Repetition
  • A Group = ( “ Expression”)
  • A Option = ( “ Expression “ )
  • A Repetition = {“ Expression “}

95. List out built in support in a GO?

Ans:

Container: container/list , container/heap

Web Server: net/http

Cryptography: Crypto/md5 , crypto/sha1

Compression: compress/ gzip

Database: database/sql

96. explain how arrays in the GO works differently then C ?

Ans:

  • Arrays are values, assigning a one array to another copies all elements.
  • If pass an array to a function, it will receive the copy of the array, not a pointer to it.
  • The size of an array is part of type. The types [10] int and [20] int are be distinct.

97. Explain and what Type assertion is used for and how it does it?

Ans:

Type conversion is used to convert a dissimilar types in GO. A type assertion takes interface value and retrieve from it value of the specified explicit type.

98. GO language how can check variable type at a runtime?

Ans:

A special type of switch is dedicated in the GO to check variable type at runtime, this switch is referred as a type switch. Also, can switch on the type of an interface value with aType Switch.

99. Does Go support a generic programming?

Ans:

Go programming language doesn’t offer support for a generic programming.

100. Does Go support method of overloading?

Ans:

Go programming language doesn’t offer support for a method overloading.

Are you looking training with Right Jobs?

Contact Us

Popular Courses