Hacker News new | ask | show | jobs
by thwd 1521 days ago
Go solves 99% of the problem quite nicely. You don't often deref pointers in Go, because of auto-addressing. E.g. there's no arrow operator as in C, the dot derefs when necessary.

I would say `v := (p.)` could've been the deref operator, but what do I know.

2 comments

That you don't deref pointers in Go is not what fixes this issue.

What fixes this issue is that, like most other languages which are not C, Go understands that "is a pointer" is a property of the type, not the name / value.

So even if it used C-style declaration, Go would say

    *int p
or, using a more verbose syntax

    Pointer[int] p
Even C isn't consistent about this:

  int * a, b; // "Property" of the variable

  typedef int * pint;
  pint x, y; // Property of the type
This has created so much bad legacy code where pointer typedefs are created for no good reason.
Why not solve 100% of the problem? And since pointer syntax is really so rare, you wouldn't even see the suffix operator.