My Foray into Vlang
V как Go с шоколадкой
Go — это ваниль: просто, быстро, без фанатизма. V же — «ваниль++»: тот же вкус, но сверху посыпка из фич.
Карты
langs := {"elixir": {"score": 100}}
score := langs["elixir"]["score"] or { -1 }
Фиксированные типы, or {}
вместо if err != nil
, spread-оператор ...
для слияния.
Структуры
struct Language {
pub mut:
score int = -1
name string @[required]
}
Методы можно вешать прямо на массивы, поля можно помечать @[required]
, дефолты и флаги CLI задаются в одном месте.
WithOption
fn new_server(opts ServerOptions) ! { ... }
Встроенный «функциональный» паттерн: new_server(port: 8080, debug: true)
.
Enum и лямбды
Enum’ы есть, лямбды короткие: nums.filter(it % 2 == 0)
.
Подводные камни
net.http
пока не дотягивает до Go.veb
(веб-фреймворк) сырой.- Сборка сложнее: нужен
v
и C-компилятор. - Параллелизм есть, но экосистема молода.
Итог
V — это Go с синтаксическим сахаром и парой острых углов. Для экспериментов — огонь, для продакшена — пока нет.