YAMAGUCHI::weblog

噛み付き地蔵に憧れて、この神の世界にやってきました。マドンナみたいな男の子、コッペです。

日本語プログラムに近づいたGo言語

はじめに

こんにちは、Go界の荒俣宏です。適当にGoで遊んでたらむちゃくちゃなコードが書けたのでメモとして残しておきます。Special thanks to BeProud

前提

GoはコードがUTF-8で記述されることを前提としていて、UTF-8で表現できる文字列であればキーワードにかぶらない限り識別子として使えます。

サンプルコード

  • main.go
package main

import (
	"fmt"
)

type びーぷらうど struct {
	めんばー []string
}

func びーぷらうどの設立() びーぷらうど {
	bp := びーぷらうど{
	めんばー: []string{
			"shacho",
			"しんすけさん",
		},
	}

	return bp
}

func (bp *びーぷらうど) に彗星の如く現れた(新めんばー string) {
	bp.めんばー = append(bp.めんばー, 新めんばー)
}

func (bp *びーぷらうど) ぁっぉ() {
	var ぁっぉ在籍 bool
	for _, 社員 := range bp.めんばー {
		if 社員 == "ぁっぉ" {
			ぁっぉ在籍 = true
		}
	}

	if ぁっぉ在籍 {
		fmt.Println("ぉゃっょ")
	} else {
		fmt.Println("お前がをぞぞか!")
	}
}

func main() {
	bp := びーぷらうどの設立()

	bp.に彗星の如く現れた("ときびと")
	bp.に彗星の如く現れた("いあん")

	for 社員番号, 社員 := range bp.めんばー {
		fmt.Printf("社員番号 %d: %s\n", 社員番号, 社員)
	}

	bp.ぁっぉ()

	bp.めんばー = append(bp.めんばー, "ぁっぉ")
	bp.ぁっぉ()
}

実行結果

% go run main.go
社員番号 0: shacho
社員番号 1: しんすけさん
社員番号 2: ときびと
社員番号 3: いあん
お前がをぞぞか!
ぉゃっょ

追伸

知り合い全員追加しようと思ったらサンプルコードの大半がsliceの初期化で終わってしまうので2人だけ追加しました。他意はございません。あと、id:wozozoはもっとネタにしていいと思う。