golang

UTCをフォーマット(YYYY-MM-DDThh:mm:ssZ)

python time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()) golangのフォーマット指定はちょっと変わってるgolang package main import ( "fmt" "time" ) func main() { now := time.Now().UTC() fmt.Println(now.Format("2006-01-02T15:04:05Z")) } time…

golangで2つの日付間の月数を取得する

関連:Python2で2つの日付間の月数を取得する - brainstormgoでも書いてみた。 Duration使ってもできそう package main import ( "fmt" "time" ) // get months between two dates. func MonthDiff(d1, d2 time.Time) int { if d2.After(d1) { d1, d2 = d2, …

Go言語でスライスをn個ずつに分割する

関連 : python2でリストをn個ずつのサブリストに分割する - brainstorm package main import "fmt" func Chunks(l []int, n int) chan []int { ch := make(chan []int) go func() { for i := 0; i < len(l); i += n { from_idx := i to_idx := i + n if to_i…

Go言語でCodeEvalのSUDOKU

関連 : Python2でCodeEvalのSUDOKU - brainstorm

Go言語でCodeEvalのSUM TO ZERO

関連 : Python2でCodeEvalのSUM TO ZERO - brainstorm CodeEval 各行にカンマ区切りで、いくつか数字が渡される。 4つずつの組み合わせを作成し、そのうち和が0になる組み合わせの数を出力する。input 2,3,1,0,-4,-1 0,-1,3,-2output 2 1

Go言語でCodeEvalのCountint Primes

関連 : Python2でCodeEvalのCounting Primes - brainstorm

Go言語でCodeEvalのVALID PARENTHESES

関連 : Python2でCodeEvalのVALID PARENTHESES - brainstorm goでも書いてみた。

Go言語でCodeEvalのRacing Chars

関連 : Python2でCodeEvalのRacing Chars - brainstorm

Go言語でCodeEvalのFizzBuzz

CodeEval

Go言語でXMLRPCクライアント

関連 : Go言語でXMLRPCサーバーのメモ - brainstorm昨日書いてみたXMLRPCのサーバーにgolangからアクセスするコード package main import ( "bytes" "fmt" "log" "net/http" "time" "github.com/divan/gorilla-xmlrpc/xml" ) type TimeArgs struct { } type …

Go言語でXMLRPCサーバーのメモ

関連 : Pythonでxmlrpc - brainstorm 以前pythonで書いたのと同じ、日付けを返すだけのサーバーをgoで書いてみる。divan/gorilla-xmlrpcを使用 package main import ( "log" "net/http" "time" "github.com/divan/gorilla-xmlrpc/xml" "github.com/gorilla/r…

Go言語でCodeEvalのEmail Validation

関連 : Python2でCodeEvalのEmail Validation - brainstorm net/mailパッケージにアドレスをパースする関数が用意されている package main import ( "bufio" "flag" "fmt" "io" "net/mail" "os" ) func isValidMailAddress(address string) bool { _, err :=…

Go言語でutf8のbomを削除する

関連 : Python2でutf8のbomを削除する - brainstorm TrimPrefixが使える package main import ( "bytes" "flag" "fmt" "io/ioutil" "os" ) var UTF8_BOM = []byte{239, 187, 191} func hasBOM(in []byte) bool { return bytes.HasPrefix(in, UTF8_BOM) } fun…

Go言語でCodeEvalのChain Inspection

関連 : Python2でCodeEvalのChain Inspection - brainstorm

Go言語でCodeEvalのString Rotation

関連 : Python2でCodeEvalのString Rotation - brainstorm

Go言語でCodeEvalのDecode Numbers

Go言語でバイナリファイルを作成する

ちょっとしたバイナリファイルをgoで作成する方法。サンプルはsjisで「あいうえお」の文字コードと改行コードCRを出力している。 package main import ( "bytes" "encoding/binary" "os" ) func main() { buf := new(bytes.Buffer) var data = []byte{ byte(…

Go言語でCodeEvalのMinimum Coins

関連 : Python2でCodeEvalのMinimum Coins - brainstorm

Go言語でCodeEvalのOverlapping Rectangles

関連 : Python2でCodeEvalのOverlapping Rectangle - brainstorm

Go言語でCodeEvalのCash Register

関連 : Python2でCodeEvalのCash Register - brainstorm

Go言語でCodeEvalのThe Major Element

関連 : Python2でCodeEvalのThe Major Element - brainstorm

Go言語でCodeEvalのArray Absurdity

input 5;0,1,2,3,0 20;0,1,10,3,2,4,5,7,6,8,11,9,15,12,13,4,16,18,17,14output 0 4

gvmを試す

たぶんrubyのrvm、pythonのvirtualenvみたいなもの。moovweb/gvm インストール $ bash < <(curl -s https://raw.github.com/moovweb/gvm/master/binscripts/gvm-installer) Created profile for existing install of Go at /usr/local/go Installed GVM v1.0…

Go言語でCodeEvalのSplit The Number

「3413289830 a-bcdefghij」だったら、3-413289830を計算して解を出力するinput 3413289830 a-bcdefghij 776 a+bc 12345 a+bcde 1232 ab+cdoutput -413289827 83 2346 44 関連 : python 2でCodeEvalのSplitted Number - brainstorm

ターミナルに水平の罫線を引くツール「hr」

LuRsT / hrmacだとbrewでインストールできる。 brew install hr ワンライナーで似たようなことができる printf "%`tput cols`s"|tr ' ' '#' あとgoでも書いてみた。yuhei0718/gohr package main import ( "os" "syscall" "code.google.com/p/go.crypto/ssh/t…

範囲を指定してリスト(スライス)の値を削除する

pythonで[]を代入する書き方があるって知らなかった。 # coding=utf-8 l = [i for i in range(0, 10)] assert l == [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 範囲を指定して値を削除 # del [2:4] l[2:4] = [] assert l == [0, 1, 4, 5, 6, 7, 8, 9] goのスライスだ…

Go言語でCodeEvalのPrime Palindrome

Go言語の並行処理ライブラリ「coop」

rakyll/coop goroutineとchannelを使った並行処理をわかりやすく書けるこんな感じ3秒後に関数を実行 // 指定した時刻に関数を実行 done := coop.At(time.Now().Add(time.Second*3), func() { fmt.Println("Hello, world") }) <- done 1分後まで、3秒ごとに関…

Go言語の練習 - container/list 2回目

今日もなんとなくcontainer/listをいじってて、ついでに単方向連結リストを書いてみた。 package main import ( "container/list" "fmt" ) type SinglyLinkedListNode struct { next *SinglyLinkedListNode Value interface{} } func (node *SinglyLinkedLis…

Go言語の練習 - container/list

container/listは双方向連結リストが実装されている。 以下は重複する要素を削除するコード。 package main import ( "container/list" "fmt" ) // mapを使うパターン func uniquify(l *list.List) { table := make(map[interface{}]bool) element := l.Fron…