De repente no lo sabĂas, pero en el idioma en el que escribes, puedes usarlo _
en nĂşmeros. Por ejemplo, el siguiente cĂłdigo PHP:
<?php
print(1_00);
print(100);
Saldrá 100100
( verifique en lĂnea ). Este azĂşcar sintáctico apareciĂł en Ada en 1980 y ha tenido un Ă©xito desigual durante los Ăşltimos 40 años. Pero durante el año pasado, se ha agregado a javascript, PHP, Go, Scala e incluso al conservador Erlang. No puedo explicar quĂ© causĂł el aumento de popularidad, por lo que en este artĂculo simplemente describirĂ© la historia de los separadores en nĂşmeros.
19 68 Algol
En los albores de la programaciĂłn, no se preocupaban especialmente por los espacios y, por lo tanto, en Algol era posible insertar un espacio en nombres y nĂşmeros de variables. Por ejemplo, a 1 st var
es un nombre de variable válido y un sinónimo a1stvar
. El cĂłdigo:
BEGIN
INT a 1 st var = 1 234 567;
REAL a 2 nd var = 3 . 1 4159 26 5 359;
print((a1stvar, newline, a2ndvar))
END
Saldrá ( comprobar ):
+1234567
+3.14159265359000e +0
UPD: ( fixed-form source files). fixed-form source files 2018 .
19_80 Ada
, 1980 Ada. , Ada 2 16. 11
(6
) 5#11#
. , , I: Float := 3#0.1#
— 1/3 ( ):
with Ada.Float_Text_IO; use Ada.Float_Text_IO;
procedure hello is
I: Float := 3#0.1#;
J: Float := 1_00.0;
begin
Put(I);
Put(J);
end hello;
19_85 Caml
19_87 Perl
, , Caml Perl. Perl , ( ) :
$x = 1_0_0;
$y = 2__5________0;
$z = $x+$y;
print "Sum of $x + $y = $z";
19_93 Ruby
19_96 OCaml
, , . OCaml () Caml, Ruby Perl, (, ).
20_03 D (v0.69)
D , , ( ).
20_10 Rust
20_11 Java (SE 7)
20_12 Julia
Rust OCaml, Julia Ruby. Java Perl .
20_14 Swift
Rust.
20'14 C++ (v14)
. , C++ . , _1
. :
#include <iostream>
int main()
{
for (int _1 = 0; _1 < 5; ++_1) {
std::cout << _1 << " ";
}
}
UPD: , (User-defined literals). 1
:
#include <iostream>
constexpr unsigned long long operator"" _0(unsigned long long i)
{
return 1;
}
int main()
{
int x = 0_0;
std::cout << x;
return 0;
}
20_16 Python (3.6)
20_17 C# (7.0), Kotlin (v1.1)
20_18 Haskell (GHC 8.6.1)
20_19 JS (V8 v7.5, Chrome 75), PHP (v7.4), Go (v1.13), Scala (v2.13)
- , . , , . , PHP :
// PHP 7.3
decimal : [1–9][0–9]* | 0
hexadecimal : 0[xX][0–9a–fA–F]+
octal : 0[0–7]+
binary : 0[bB][01]+
// PHP 7.4
decimal : [1–9][0–9]*(_[0–9]+)* | 0
hexadecimal : 0[xX][0–9a–fA–F]+(_[0–9a–fA–F]+)*
octal : 0[0–7]+(_[0–7]+)*
binary : 0[bB][01]+(_[01]+)*
, PHP :
20_20 Erlang (v23)
Erlang. , , Erlang , Ada ( ), ( 36). , () 3z
36 (=143
).
-module(main).
-export([start/0]).
start() ->
io:fwrite("~w", [36#3z]).
33 .