strconvパッケージでIntSizeという名前で定数定義されている
その導出方法は、書籍プログラミング言語Goの演習問題6.5で言及されているテクニックを使用している
32 << (^uint(0) >> 63)
uintはプラットフォームが32bit環境なら32bitの符号無し整数・64bit環境なら64bitの符号無し整数として振る舞う
^uint(0)は32bit環境ならば0を反転しているので、32bit立った状態を表している
(^uint(0) >> 63)は63bit文右シフトしているので、32bitならば0になり、63bitならば最下位のbitだけが立っている状態になる
したがって、32 << (^uint(0) >> 63)は32bit環境ならば32 << 0 **(32)**となり、64bit環境ならば32 << 1 (64) となる