# Features of Go

1. If you import a package or declare a variable, then haven't used it on your program, an error will be caused. 
2. They call threading processing `Goroutines`. It's super easy to use, read more about it: [https://pragmacoders.com/blog/multithreading-in-go-a-tutorial](https://pragmacoders.com/blog/multithreading-in-go-a-tutorial)
3. There has no such a thing called `named arguments` in the function definition.
4. There has no such a thing called `private field (or arguments)` for a `struct (or class)` . If you need a struct that has a lot of private variables inside of that struct \(or class\), you need to return a point of a new struct.
5. If you don't give a point of a struct to your struct function, you won't be able to use it as a normal class as you would do in other programming languages. \(Because you can't really change the in-class variable in that case\)
6. There is no such a thing called `default arguments` in the function definition or struct definition.

