Hacker News new | ask | show | jobs
by WhereIsTheTruth 1096 days ago
> New built-in functions: min, max and clear.

What a mistake.. reserved keywords are words I can no longer use for myself...

Zig does it better by requiring a prefix @ for most their builtin needs

4 comments

min and max are predeclared identifiers in the universe block, not reserved words. https://go.dev/ref/spec#Predeclared_identifiers

You can continue to declare your own entities with these names.

They're not reserved keywords. Existing/package defined min/max functions would take precedence. They have the same semantics as `append`
You refactored your code, you think you wrote your ``min`` function, but no, it'll call the builtin one, without warning you..

I don't like this design..

The compiler will tell you if the types aren't compatible, and this is only for primitive comparable types. What `min()` implementation could you have that even does something different?
A heap?
Not too familiar with go toolchains, but I bet there's a linter that will warn you about shadowing builtins.
Yep: "variable append has same name as predeclared identifier (predeclared) go-golangci-lint"
if you have so few tests and so little code review that this matters then I am not sure what to suggest
Qt uses qMin and qMax, it may have been nice if go went with like gMin and gMax
For anyone that misses their Objective-C days.
breaks all my variables named min and max