Quando e por que usar o atributo `#[inline]` em Rust? Ele é realmente necessário?
Olá a todos! Sou novo em Rust e estou tentando entender as otimizações. Li que em C/C++ a palavra-chave `inline` pode acelerar o código, substituindo a chamada da função pelo seu corpo. Em Rust também existe o atributo `#[inline]`, mas não entendo completamente quando usá-lo.
Escrevi uma função simples para somar dois números:
```rust
fn add(a: i32, b: i32) -> i32 {
a + b
}
```
E outra que a chama em um loop:
```rust
fn sum_squares(n: i32) -> i32 {
let mut sum = 0;
for i in 0..n {
sum += add(i, i);
}
sum
}
```
Se eu adicionar `#[inline(always)]` em `add`, isso fará sentido? O compilador não descobre sozinho? Ou, ao contrário, `#[inline(never)]` pode ser útil para reduzir o tamanho do binário?
Vi que na biblioteca padrão do Rust algumas funções são marcadas com `#[inline]`, mas não todas. Isso significa que é algo a ser feito com consciência. Como um desenvolvedor decide se deve inserir `#[inline]` em seu código? Existem regras empíricas ou isso é sempre prematuro?
No answers yet.
Faça login para deixar uma resposta
Blogs
Melhores IDEs e ferramentas para desenvolvimento Kotlin em 2025