Comment

Comment by kiitos

> If your module relies on compile time checks for validity,

...then it's broken, because the Go compiler, factually, cannot (in general) check or enforce the validity of specific values.

> there's no reason for you to also include runtime checks. Other developers breaking your defined contract is not your responsibility, it's not even a bug.

It is absolutely the responsibility of the function

    func PrintColor(c Color)
to ensure, at runtime, that `c` is a valid Color. My example code -- which allowed an invalid Color value of "orange" -- is absolutely a bug in PrintColor.
parent kiitos 3 years ago

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton