--Boundary-02=_mYz2/ItsBsWPhUS
Content-Type: text/plain;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Description: signed data
Content-Disposition: inline
No, I'm just asking how ruby "dare" to convert my 0 to true (or
false, it is the same).
Outside of any programming language, an abstract boolean has only two=20
values: true, and false.=20
Many programming languages map true to non-zero and false to zero, but=20
that isn't necessary a given. Return values for commands in a shell are=20
the opposite, 0 is true, anything non-zero is false. Even in languages=20
like C, technically 0 means true and non-zero means false, but it's=20
semantically exactly the opposite for 99.9% of all standard functions,=20
which return 0 for true, and non-zero for false.
Some languages, like Python or Perl, have a big list of what is false,=20
and everything else is true. Sometimes it's hard to know what is going=20
to be true or false in those languages unless you are very familiar=20
with the nuances.
In digital logic design, often 0 means false, and 1 means true. Except=20
if you're talking about shared bus architectures, then almost always 0=20
means true, 0 means false.
While it works for certain domains, it's probably not a good idea in=20
general to assume that integers map have any intrinsic mapping to=20
booleans: it's always a characteristic of the language or problem=20
domain in question.
In ruby, it's very simple and straightforward. Only two things are=20
logically false: nil, and false. There isn't any "conversion" going on,=20
it's an intrinsic part of the language. There is no "Boolean" data type=20
that things are being "converted" to; *everything* is true, *except*=20
nil and false.=20
=2D-=20
Wesley J. Landaker - (e-mail address removed)
OpenPGP FP: 4135 2A3B 4726 ACC5 9094 0097 F0A9 8A4C 4CD6 E3D2
--Boundary-02=_mYz2/ItsBsWPhUS
Content-Type: application/pgp-signature
Content-Description: signature
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)
iD8DBQA/2zYm8KmKTEzW49IRAtBYAJwMvW0or5Rx55WRq+U7BmSNPHRkTwCfWtM2
EB+5QK32/TT9jP/t3v2lab4=
=zJ1E
-----END PGP SIGNATURE-----
--Boundary-02=_mYz2/ItsBsWPhUS--