#game
В стиме сейчас за смешные деньги дают (ну, помимо всего прочего) всю трилогию квестов Deponia разом. Как человек, который с удовольствием прошёл все три — всячески рекомендую (только держите под рукой прохождение — некоторые задачи откровенно издевательские)
В стиме сейчас за смешные деньги дают (ну, помимо всего прочего) всю трилогию квестов Deponia разом. Как человек, который с удовольствием прошёл все три — всячески рекомендую (только держите под рукой прохождение — некоторые задачи откровенно издевательские)
Steampowered
Deponia: The Complete Journey on Steam
Junk, junk and even more junk. Life on the trash-planet Deponia is anything but a walk in the park. No surprise that Rufus had enough of that and hatches one ludicrous plan after the other to escape this bleak place.
#prog #rust #cpp #rustlib
Corrosion (ранее известный как cmake-cargo) — инструмент для интеграции библиотек на Rust в проект на C++, использующий cmake.
Corrosion (ранее известный как cmake-cargo) — инструмент для интеграции библиотек на Rust в проект на C++, использующий cmake.
GitHub
GitHub - corrosion-rs/corrosion: Marrying Rust and CMake - Easy Rust and C/C++ Integration!
Marrying Rust and CMake - Easy Rust and C/C++ Integration! - corrosion-rs/corrosion
Блог*
#prog #rust На чуть менее саркастичной ноте: в Rust 1.50 1.51 будет стабилизирована min_const_generics! 🎉 Ну и нормальное деление на NonZero* типы.
GitHub
stabilize `#![feature(min_const_generics)]` in 1.51 by lcnr · Pull Request #79135 · rust-lang/rust
A new Kind
A Sort long Prophesized
Once Fragile, now Eternal
Stabilization report
This is the stabilization report for #![feature(min_const_generics)] (tracking issue #74878), a subset of #![featur...
A Sort long Prophesized
Once Fragile, now Eternal
Stabilization report
This is the stabilization report for #![feature(min_const_generics)] (tracking issue #74878), a subset of #![featur...
Иногда для того, чтобы продвинуться вперёд, нужно сделать несколько шагов назад.
И это не какая-то глубокая философская мысль, а просто описание того, как работают подземные пешеходные переходы.
И это не какая-то глубокая философская мысль, а просто описание того, как работают подземные пешеходные переходы.
Forwarded from Технологический Болт Генона
This media is not supported in your browser
VIEW IN TELEGRAM
У вас есть кубернетес?
Что за сайт может находиться на домене верхнего уровня "sexy"? Разумеется, terminal.sexy, сайт для интерактивного подбора цветовой схемы для терминала.
Какие же #prog-раммисты извращенцы.
Какие же #prog-раммисты извращенцы.
Итоги года
Итак, очередной, 2020, год, подходит к концу (и слава б-гу!), а это значит, что пора окинуть взглядом прошлое и набросать планы на будущее. Без лишних слов представляю вам мысли, которыми бы хотелось поделиться с вами:
1. Итоги года переоценены.
Итак, очередной, 2020, год, подходит к концу (и слава б-гу!), а это значит, что пора окинуть взглядом прошлое и набросать планы на будущее. Без лишних слов представляю вам мысли, которыми бы хотелось поделиться с вами:
1. Итоги года переоценены.
Forwarded from ☕️ Мерлин заваривает τσάι 🐌
Любопытный, но довольно бесполезный пример полиморфизма в Go
В гошечке есть несколько способов писать полиморфные функции:
1. интерфейсы;
2. тайп свитчи и тайп кастинг интерфейсов;
3. рефлексия;
Недавно мне понял, что есть чётвёртый подход, который стал возможен с появлением type alias — назовём его апкастингом типов. Работает оно так:
К сожалению, это не слишком полезно — наверное только если вы не хотите делать пачку геттеров и у вас есть пачка одинаковых структур разных типов.
В гошечке есть несколько способов писать полиморфные функции:
1. интерфейсы;
2. тайп свитчи и тайп кастинг интерфейсов;
3. рефлексия;
Недавно мне понял, что есть чётвёртый подход, который стал возможен с появлением type alias — назовём его апкастингом типов. Работает оно так:
func main() {В спеке Go указано, что присваивание x типа V к переменной типа T валидно в случае, если V и T основаны на одинаковых типах и T — не именованный тип ("x's type V and T have identical underlying types and at least one of V or T is not a defined type."). Псевдонимы типов не считются именованными типами, так что мы можем принимать в аргумент n любую кастуемую структуру.
printName(Cat{"Whiskey"})
printName(Dog{"Chappie"})
}
type Cat struct { Name string }
type Dog struct { Name string }
type named = struct { Name string }
func printName(n named) {
fmt.Println(n.Name)
}
К сожалению, это не слишком полезно — наверное только если вы не хотите делать пачку геттеров и у вас есть пачка одинаковых структур разных типов.