O Zig torna realmente difícil executar uma função virtual. O que é super irritante no início Você não pode simplesmente criar uma interface e depois fazer uma implementação de forma trivial como poderia em Golang ou na maioria das outras linguagens Mas isso é uma característica, não um erro. Você pode fazer funções virtuais usando comptime. Mas o Zig torna mais óbvio que há desvantagens negativas nisso. O Zig torna a escrita de código mais simples que não usa funções virtuais o seu caminho padrão feliz e, como resultado, você acaba usando interfaces e funções virtuais apenas quando isso é extremamente impactante e vale o esforço. Acontece que você quase nunca precisa de interfaces em muito código.
Esqueci de mencionar que concordo, aliás. Isso é mais como o lado positivo que fez a situação passar de "wtf" para "na verdade, é uma mentalidade interessante para desencorajar essa abstração". Meio que como a falta de enums em Go ou o verificador de empréstimos em Rust. Ou linguagens orientadas a objetos. No geral, não gosto dessas coisas, mas meio que aprendi algo adotando a perspectiva do ponto de vista da linguagem.
@norswap A propósito, percebo que a minha publicação não menciona que, no geral, quero interfaces. Estou apenas a falar sobre o lado positivo aqui, mas na minha opinião, interfaces são onde o zig sem fluxo de controle oculto vai um passo além.
808