Dipende, ovviamente, dalla semantica che l'utente della tua funzione si aspetterebbe, in base al dominio. Con lat1, long1, lat2, long2
stai essenzialmente prendendo due punti: lat1, long1
e lat2, long2
.
*-(lat1, long1) --+
| |
| |
+-- -* (lat2, long2)
Mentre con lat1, lat2, long1, long2
, stai prendendo i limiti di 4 assi: la parte superiore, inferiore, sinistra e destra. Non l'ho mai visto prima, ma posso immaginare che potrebbe essere comune in alcuni domini, o per esempio quando si utilizza l'aritmetica a intervalli.
| |
-+---------lat1--------+-
| |
| |
long1 long2
| |
| |
-+---------lat2--------+-
| |
Non so come Matlab si occupi di tipi, ma in un linguaggio imperativo convenzionale mi aspetterei che le funzioni prendano argomenti di tipi più descrittivi, ad esempio:
Info rect_info(Point top_left, Point bottom_right)
Info area_info(Range vertical, Range horizontal)
Vale anche la pena considerare la terminologia. Due numeri arbitrari non sono necessariamente un Point
, ma puoi rappresentare un Point
con essi: se la tua API prende numeri quando vuole dei punti, stai esponendo i dettagli di implementazione all'utente. Potresti fare un ulteriore passo avanti: due% arbitrari Point
s non sono necessariamente Rectangle
, e due% arbitrari Range
s non sono necessariamente Area
.