1
resposta

Usando loop for in Go

Fiz o desafio de simples de somar os numeros pares tanto em Go quanto em Java, mas resolvi nao usar o if como estava na resolucao do Instrutor, pois seguinto principios do Object Callisthenics, e bom manter apenas um nivel de identacao por codigo, ate porque o if e meio que opicional se voce for parar para penser, se quiser apenas os numeros pares, baste fazer o incremento do 'i' somando de dois em dois i+=2. Desta forma voce evita ter de usar if para verificar cada numero, o que pode custa dependendo do valor passado. AI e so passar ou 0 ou 1 como valor inicial, 0 para numeros pares e 1 para impares. O resultado foi este:

Java
Fiz em Java de tres formas distintas para se conseguir o resultado da soma dos pares:

package test;

import com.github.rickmvi.jtoolbox.console.IO;
import com.github.rickmvi.jtoolbox.util.MathUtils;
import com.github.rickmvi.jtoolbox.util.Numbers;

import java.util.stream.IntStream;

public class SumEven {
    public static void main(String[] args) {

        int sum = 0;
        for (int i = 0; i <= 100; i += 2) {
            sum += i;
        }

        IO.println(sum);

        int res = IntStream.rangeClosed(0, 100)
                .filter(Numbers::isEven)
                .sum();
        IO.println(res);


        IO.println(MathUtils.sumEvenInt(100));

    }
}

Go

package main

import "fmt"

func main() {

    sum := 0

    sum = sumEven(sum)

    fmt.Println(sum)

}

func sumEven(sum int) int {
    for i := 0; i <= 100; i += 2 {
        sum += i
    }
    return sum
}

Sainda para Go e Java:
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Excelente observação, Rick!

Gostei muito da sua abordagem de incrementar o laço com i += 2 para evitar o if. É uma ótima aplicação prática do princípio de manter um único nível de indentação do Object Calisthenics. A solução fica mais limpa e direta para este problema específico.

Valeu por compartilhar as diferentes formas em Java também, a versão com Stream é bem elegante e mostra a flexibilidade da linguagem. Ótima contribuição!