Sto cercando una semplice spiegazione per come funziona modulo operandi di Ruby e perché, in Rubyoperando modulo in Ruby rispetto a PHP
puts 4 % 3 # 1
puts -4 % 3 # 2 <--why?
puts -4 % -3 # -1
ma in PHP:
<?php
echo 4 % 3; # 1
echo -4 % 3; # -1
echo -4 % -3; # -1
Sembra a me come -4% 3 è actally 8% 3 (8 è la differenza tra 4 e -4).
Il comportamento di X% Y, dove X o Y sono negativi è una scelta di progettazione (che può essere "indefinito comportamento"). Niente di più, niente di meno. Questa sezione su [divisione intera] (http://www.davidflanagan.com/2006/06/integer-division-and-negative-numbers.html) e i commenti possono portare a ulteriori approfondimenti. IIRC la ragione di questo "comportamento strano" in Ruby è discussa sulla ML. –
Se Ruby fa le cose in un modo, e PHP fa le cose un altro, supponi che Ruby stia facendo nel modo giusto! j/k –