а что оно должно делать?
потому что язык нищий а так, было бы классно, если он еще и генерировал cmov
Его не до сих пор нет, его в принципе нет, т.к. при разработке языка бритый товарисч в очочках видел как его используют для постоения сложных конструкций и решил не включать тернарный оператор в язык
Словом, это аргументированный и осмысленный ход (одно из немногих с чем я не могу смериться) Но это опять же на любителя, мне после жовы код на го кажется очень разряженным в плане плотности, пишешь дохрена, смысла нихрена
Так он и должен генерировать cmov для такого кода - https://github.com/golang/go/blob/be0e0b06ac53d3d02ea83b479790404057b6f19b/src/cmd/compile/internal/ssa/branchelim.go#L309
Обычно наоборот - в джаве код на тысячу строчек заменяется кодом на го в сто строчек. И эти строчки намного короче и легче понять, чем в джаве с ее AbstractFabricFabricVisitorSingletonInversionOfControl
ооо, вот это круто
В Java больше абстрактности, за счёт того же Spring можно получать готовые решения в пару строчек, однако неявные абстракции всегда протикают и когда что-то ломается приходиться ковыряться в кишках фреймворка. В го этих уровней в разы меньше и они более тривиальны. Опять же – вопрос задачи и вкуса
Обсуждают сегодня