Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

GO言語には標準でコーディング規則矯正ギプスが付属している

マスコットが一々神経を逆撫でするGO言語の話題です。

GO言語には標準でコーディング規則矯正ギプスが付属しています。
その名も「fmt」...まんまですね。

実例

たとえば、こんな見るにも無惨なコードも

$ cat hello.go
package main

import "fmt"

func main() {

for i:=0; i < 0xff; i ++ {
  if i % 16 == 0 {
      fmt.Printf("%3d (0x%02x) : %08b\n" ,i,i,i)
 }
}
         fmt.Printf("...fin\n")
}
$ go fmt hello.go 
$ cat hello.go 
package main

import "fmt"

func main() {

	for i := 0; i < 0xff; i++ {
		if i%16 == 0 {
			fmt.Printf("%3d (0x%02x) : %08b\n", i, i, i)
		}
	}
	fmt.Printf("...fin\n")
}

規則に則るので、実行上何の問題もありません。

$ go run hello.go 
  0 (0x00) : 00000000
 16 (0x10) : 00010000
 32 (0x20) : 00100000
 48 (0x30) : 00110000
 64 (0x40) : 01000000
 80 (0x50) : 01010000
 96 (0x60) : 01100000
112 (0x70) : 01110000
128 (0x80) : 10000000
144 (0x90) : 10010000
160 (0xa0) : 10100000
176 (0xb0) : 10110000
192 (0xc0) : 11000000
208 (0xd0) : 11010000
224 (0xe0) : 11100000
240 (0xf0) : 11110000
...fin

ある意味、これ自体がGO言語の文化と言えるものなのかも知れません。