読者です 読者をやめる 読者になる 読者になる

Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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

golang

マスコットが一々神経を逆撫でする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言語の文化と言えるものなのかも知れません。