Min y max

ejemplo: un remis cobra 2 pesos por kilómetro, mínimo 5 pesos. Tengo que escribir el método precioViaje: en la clase Remis. ¿Hago esto?

   precioViaje: unViaje        | precio |        precio := 2 * unViaje distancia.        precio >= 5 ifTrue:[^precio] ifFalse:[^5]

nuuuuuuu … los programadores objetosos con estilo sólo usan … min: y max:. Estos mensajes los entienden los números, reciben otro número como parámetro, y devuelven el más chico / más grande entre self y el parámetro. Pueden probar esto en un workspace

   3 min: 8    3 max: 8    3 min: 1    3 max: 1

Entonces ¿cómo queda el precioViaje:? Lo que tengo que devolver es el máximo entre 5 y el resultado de la cuenta (piénsenlo …), entonces queda así

   precioViaje: unViaje        ^5 max: (2 * unViaje distancia)

bel-leza

Para practicar, hagamos que a un remis le pueda preguntar

Los remises entienden distancia y cantPasajeros