Try to solve 3 Golang interview questions and Go interview questions below. Hints can help you find answers to questions you are having trouble with.

**1. Merge Names**

Implement the *uniqueNames* function. When passed two slices of names, it will return a slice containing the names that appear in **either or both** slices. The returned slice should have no duplicates.

For example, calling *uniqueNames([]string{"Ava", "Emma", "Olivia"}, []string{"Olivia", "Sophia", "Emma"})* should return a slice containing Ava, Emma, Olivia, and Sophia in any order.

- Example case: Wrong answer
- Each slice has distinct names: Wrong answer
- Each slice has duplicate names: Wrong answer
- Slices have some names in common: Wrong answer

**2. Quadratic Equation**

Implement the function *findRoots* to find the roots of the quadratic equation: ax^{2} + bx + c = 0. If the equation has only one solution, the function should return that solution as both results. The equation will always have at least one solution.

The roots of the quadratic equation can be found with the following formula:

For example, the roots of the equation 2x^{2} + 10x + 8 = 0 are -1 and -4.

**3. Numeric Input**

User interface contains *NumericInput* control, which accepts only digits.

Extend *NumericInput* structure so that:

- It implements
*UserInput*interface. *Add(rune)*should add only decimal digits to the*input*. Other runes should be ignored.*GetValue()*should return the current*input*.

For example, the following code should output "10":

```
var input UserInput = &NumericInput{}
input.Add('1')
input.Add('a')
input.Add('0')
fmt.Println(input.GetValue())
```

- Example case: Wrong answer
- GetValue() returns input: Wrong answer
- Add(rune) adds runes to the input: Wrong answer
- Add(rune) adds only decimal digits to the input: Wrong answer

Go/Golang Online Test (Easy)