4) Вместо Kotlin Nullability указатели как в С/C++, то есть обычные переменные не могут быть nil, только указатели:
// проинициализируется нулем
var number1 int
// будет nil
var number2 *int
type Config struct { ... }
// все поля структуры проинициализируются дефолтными значениями
var config1 Config
// будет nil
var config *Config
Полезно использовать указатели для ответов бэка, так как в конечном итоге данных может не быть (nil).
5) Работа с массивами самая базовая, без кучи крутых и полезных функций, как в Kotlin:
var numbers = []int{ 1, 2, 3 }
// вместо функции map нужно писать цикл
for i, num := range numbers {
numbers[i] = num * 2
}
var filtered = []int {}
// вместо функции filter также надо писать цикл
for _, num := range numbers {
if num > 2 {
filtered = append(filtered, num)
}
}
// функция contains имеет похожий аналог
slices.Contains(1, numbers)6) Очень просто начать писать бэк, буквально 10 строчек и первый запрос готов:
func games(
w http.ResponseWriter,
_ *http.Request
) {
w.Write([]byte("OK!"))
}
router := mux.NewRouter()
router.HandleFunc(
"/games",
games
).Methods("GET")
http.ListenAndServe(
":8080",
router
)
В добавок легко начать работать с файлами и базой данных.
P.S. Что скажите по поводу мерча "наклейки с ГАЗ 21" ? Пишите свое мнение в комментах.
Хорошего дня и поменьше заморачивайтесь!