Another way of saying it: "Go has Schrödinger's Constants." This captures the notion that a constant is of every type until you use it, whereupon it settles to the appropriate type based on the expectations of the use site.
On Wed, Dec 5, 2018 at 2:55 PM Rob Pike <r...@golang.org> wrote: > Most of this is explained in blog.golang.org/constants. > > -rob > > > On Thu, Dec 6, 2018 at 4:04 AM Andy Balholm <andybalh...@gmail.com> wrote: > >> When an untyped integer constant is converted to a typed value, it always >> becomes int. I suppose the rules could be made more complicated to handle >> values that won’t fit in an int. But what if the value is too big to fit in >> a uint64? Should it be a float64 then? >> >> Andy >> >> On Dec 5, 2018, at 8:54 AM, Michel Levieux <m.levi...@capitaldata.fr> >> wrote: >> >> Well the only thing I do in the main is : >> >> fmt.Println(v) >>> >> >> Shouldn't the compiler statically type v to uint64? >> I don't get the need to force type of v to uint64? >> >> Le mer. 5 déc. 2018 à 17:45, Andy Balholm <andybalh...@gmail.com> a >> écrit : >> >>> Apparently in your code the value is being assigned to an int. But it’s >>> too large for an int; it needs a uint64 to hold it. >>> >>> Andy >>> >>> On Dec 5, 2018, at 8:35 AM, Michel Levieux <m.levi...@capitaldata.fr> >>> wrote: >>> >>> Hi guys, >>> >>> With a colleague of mine, we've run into a strange issue today. When we >>> look at package math, in const.go, we can see this line : >>> >>> MaxUint64 = 1<<64 - 1 >>>> >>>> >>> which I assume works pretty well. But if I do the same in a test main >>> and try to 'go run' it, with this line : >>> >>> const v = 1 << 64 - 1 >>>> >>>> >>> I get the following error : >>> >>> ./testmain.go:8:13: constant 18446744073709551615 overflows int >>>> >>> >>> I think this is not a bug and we're just missing something here. Could >>> anyone explain this behaviour / point me to a documentation that explains >>> it? >>> >>> Thank you guys >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "golang-nuts" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to golang-nuts+unsubscr...@googlegroups.com. >>> For more options, visit https://groups.google.com/d/optout. >>> >>> >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "golang-nuts" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to golang-nuts+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- *Michael T. jonesmichael.jo...@gmail.com <michael.jo...@gmail.com>* -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.