golang

GoのNaNとInf

PythonとGoでintの最大値を取得

python 2.xsys.maxintで取得。環境によって32bit符号付き整数、または64bit符号付き整数の最大値が取得できる print sys.maxint # 9223372036854775807 print hex(sys.maxint) # 0x7fffffffffffffff print 2**63-1 # 9223372036854775807 python 3.x sys.max…

GoでCodeEvalのAge Distribution

CodeEval 関連:Python 3.xでCodeEvalのAge Distribution - brainstorm

GoでCodeEvalのRollerCoaster

CodeEval 関連:Python 3.xでCodeEvalのRoller Coaster - brainstorm

GolangでCodeEvalのJUGGLING WITH ZEROS

CodeEval

GolangでCodeEvalのBats Challenge

CodeEval

GolangでCodeEvalのLettercase Percentage Ratio

CodeEval

GolangでCodeEvalのPalindromic Ranges

CodeEval

GolangでCodeEvalのWord Search

CodeEval

GolangでCodeEvalのString Substitution

CodeEval

GolangでCodeEvalのString Searching

CodeEval

GolangでCodeEvalのString List

CodeEval

GolangでCodeEvalのEmail Validation(正規表現)

CodeEval 正規表現で書きなおした。 package main import ( "bufio" "fmt" "log" "os" "regexp" "strings" ) var email_pattern = `^(?i:[^ @"<>]+|".*")@(?i:[a-z1-9.])+.(?i:[a-z])+$` var email_re = regexp.MustCompile(email_pattern) func main() { fi…

GolangでCodeEvalのUri Comparison

CodeEvalcapitalizeはstrings.Titleでできた。

GolangでCodeEvalのWord Chain

CodeEval

GolangでCodeEvalのPoint in Circle

CodeEval

GolangでCodeEvalのA Piles of Bricks

CodeEval

GolangでCodeEvalのPassTriangle

CodeEval

GolangでCodeEvalのCity Blocks Flyover

CodeEval

GolangでCodeEvalのPascals Triangle

CodeEval

GolangでCodeEvalのReverse Groups

CodeEval

GolangでCodeEvalのLost in Translation

CodeEval

GolangでCodeEvalのMineSweeper

CodeEvalpythonで書いたコードを、golangで書きなおすのはそれほど大変ではない。 rubyのほうがより簡単だと思うけど。 リスト内包表記は欲しくなる。

GolangでCodeEvalのDATA RECOVERY

CodeEval関連 : python2でCodeEvalのDATA RECOVERY - brainstorm

GolangでCodeEvalのWorking Experience

CodeEval関連 : Python2でCodeEvalのWorking Experience - brainstorm

Martiniでレスポンスをgzip compressする

martini-contribにgzipも用意されている。martini-contrib ただ、Accept-Encodingにgzipが含まれていれば無条件でgzipするので、小さいコンテンツを返すときは余計にサイズが大きくなってしまう。 djangoを見てみたら、django.middleware.gzip.GZipMiddlewar…

Golangで1秒ごとのメソッドの呼び出し回数を制限する

関連 : Python2で1秒ごとのメソッド呼び出し回数を制限するデコレータ - brainstorm goだとtime.Tickで、指定した間隔でメッセージを受け取ることができるので、こんな形でできそう

Golangで型情報を調べる

reflect.TypeOfで package main import ( "fmt" "reflect" ) func main() { fmt.Println(reflect.TypeOf(1)) // int fmt.Println(reflect.TypeOf("")) // string fmt.Println(reflect.TypeOf([]string{})) // []string fmt.Println(reflect.TypeOf(true)) //…

Golangでmapからquerystringを生成する

キーでソートして、値はエスケープする package main import ( "fmt" "net/url" "sort" "strings" ) type SortedQuery struct { _map map[string]string keys []string } func (sq *SortedQuery) Len() int { return len(sq._map) } func (sq *SortedQuery) …

Python2とGolangでHMAC方式のハッシュ値を生成する

HMACでハッシュ値を生成してbase64エンコードしてurlエスケープする。 amazon product apiでsignatureとして使われる値。python2 import hmac import urllib from hashlib import sha256 from base64 import b64encode key = "key" data = "data" digest = h…

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