WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

Go · Intermediate · question 26 of 100

What are the different ways to create a new variable in Go? What are the differences between these methods?

📕 Buy this interview preparation book: 100 Go questions & answers — PDF + EPUB for $5

In Go, there are several ways to create and initialize a variable. I will explain each method with examples, highlighting their differences.

1. **Declaration with var keyword**

To create a new variable in Go, you can use the ‘var‘ keyword followed by the variable name and its type:

var variableName variableType

For example:

var count int

By default, variables declared without any value will be initialized with their zero value, which depends on the type:

Type Zero Value
int 0
float64 0.0
bool false
string "" (empty string)
pointer nil

2. **Declaration with var keyword and initialization**

You can also declare a variable and initialize it with a value using the ‘=‘ operator:

var variableName variableType = value

For example:

var count int = 42
var msg string = "Hello, Go!"

3. **Short variable declaration (:=)**

To declare and initialize a variable at the same time, you can use the short variable declaration operator ‘:=‘. This operator infers the variable type from the assigned value:

variableName := value

For example:

count := 42
msg := "Hello, Go!"

Keep in mind that short variable declarations can only be used inside a function.

4. **Declaration and initialization with ’var’ keyword and type inference**

You can declare a variable with the ’var’ keyword and infer its type during initialization:

var variableName = value

For example:

var count = 42
var msg = "Hello, Go!"

5. **Multiple variable declaration**

You can declare multiple variables at once by enclosing their names and types (or values) in parentheses:

var (
  variable1 variableType1
  variable2 variableType2
  ...
)

For example:

var (
  count int
  msg   string
  pi    float64
)

You can also use multiple assignment with short variable declaration:

variable1, variable2 := value1, value2

For example:

count, msg := 42, "Hello, Go!"

### Differences between these methods

1. **Declaration with ’var’ keyword and without value**: This method allows you to declare a variable without initializing it. The variable will contain the zero value for its type.

2. **Declaration with ’var’ keyword and initialization**: This method allows you to declare and initialize a variable in one statement. The variable type is explicitly specified.

3. **Short variable declaration (:=)**: This method provides a more concise syntax for declaring and initializing a variable. Type inference is used, so you don’t need to specify the variable type. This can only be used inside a function.

4. **Declaration and initialization with ’var’ keyword and type inference**: This method declares and initializes a variable in one statement. The variable type is inferred from the value, but unlike the short variable declaration, it can be used both inside and outside functions.

5. **Multiple variable declaration**: This method allows you to declare multiple variables of different types in a single statement. It can be combined with other methods, such as type inference, to declare and initialize multiple variables concisely.

Each method has its pros and cons depending on the context and your requirements. Choose the one that best suits your needs and makes your code more readable and maintainable.

Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic Go interview — then scores it.
📞 Practice Go — free 15 min
📕 Buy this interview preparation book: 100 Go questions & answers — PDF + EPUB for $5

All 100 Go questions · All topics