DRYな備忘録

Don't Repeat Yourself.

2014-05-01から1ヶ月間の記事一覧

Go言語`database/sql`パッケージのplaceholderが効かない【小学生は最高だぜ】

問題 Go言語でMySQLを使う案件があったので、Goに標準のdatabase/sqlパッケージを使う(あとgithub.com/go-sql-driver/mysqlパッケージも)。問題はdatabase/sqlパッケージの*sql.DBが持ってるQueryメソッドがデフォルトで実装しているplaceholder機能を以下…

TypeScriptのthisとメソッドのoverrideについてメモ

親クラスで定義したメソッドa 親クラスで定義したaを呼ぶメソッドcall_a 子クラスでオーバーライドしたa 子クラスのインスタンスでcall_aするとどっちが呼ばれる? module My { export class Super { a() { console.log("ここはスーパーなa"); } call_a() { …

Go言語でinterfaceをimpleしてるつもりが「does not implement (method has pointer receiver)」って叱られる【golang】【pointer】【ダックタイピング】

問題 Go言語はinterfaceによる型の制約ができる。逆にinterfaceで宣言したメソッドをすべて満たすいかなるstructもそのinterfaceを満たすものとして扱える。いわゆるダックタイピング。 参考 ダックタイピングって一体なんなのよ【golang】 - DRYな備忘録 で…

Go言語でプリミティブ型に拡張メソッドを生やす【golang】【type】【extend】

go

問題 Go言語で、たとえばstring型を拡張してみたい 一応 package main type MyStr string func (s MyStr) Waros(i int) MyStr { for j := 0; j < i; j++ { s += "w" } return s } func main() { var s MyStr = "なんつってつっちゃった" println( s.Waros(20…

Go言語のラムダ式のmapの中での型名【golang】【lambda】【type】

go

問題 Go言語のmapでは、キーとバリューにそれぞれ型が指定できる。 var myMap = map[int]string{ 60: "還暦", 70: "古希", 77: "喜寿", } 当然、定義したtypeやその参照でも指定できる。 type User struct { Name string Lang string } var myMap = map[stri…

Go言語で、クラス名からインスタンスを動的コンストラクトする、みたいなの【golang】【reflect】

go

問題 なんか文字列渡ってきてそれに対応するクラスをインスタンス化するみたいなのやったりする。 たとえば PHP prop}"; } } $class_name = "MyKlass"; $k = new $class_name(); $k->meth(); Python class MyKlass: def __init__(self): self.p…

travis-ciでRedisを使うプロジェクトをCIしたい【Travis CI】【Redis】

問題 Redisを使ったプロジェクトのCIをTravisに任せたいんだけど、TravisがホストしてるサーバってRedis入ってるの?ポートは? 解決 入ってます Travis CI: Databases and other services Redisだけじゃなくてもちろん他のDBも入ってる。ウェブGUIからの操…

telnetから抜ける

びびった。抜けられん。 % telnet localhost 18000 Trying ::1... Connected to localhost. Escape character is '^]'. ^C ^C^Cc^@^B ^C ^D ^E ^[^[^[^[^[^[^[ ^[. ^[^[. ^[^[^[^[^] ^]. ^C^D ^] telnet> ^C^D ぬけられん(;・∀・) 抜けれた quit Connection…

Macにmemcachedをインストールしてことはじめ【memcached】【MacOS】

ゴール MacOSにmemcachedをインストール memcachedサーバを軌道 tcpからコマンド叩いてSETとGETしてみる memcached? インストール % brew search memcached libmemcached memcached % brew install memcached ==> Downloading https://downloads.sf.net/pro…

3分でRedisのpub/subを使ってみる【redis】

pub/sub オンメモリのKVSでありながら、なおかつディスクに永続化する機能も持つRedisですが、あるクライアントプロセスから別のクライアントプロセスへ通知を送る、いわゆる「pub/sub」も提供しています。 「pub/sub」とは「publish」と「subscribe」の略で…

Go言語でバイト列の初期化とシングルクオートの扱い【golang】【byte】

問題 「aaaaaa」という文字列をbyte列にしたいときの方法を探してて見つけたのでメモ 一文字ならシングルクオートを使える Go言語ではシングルクオートを使うことで、ある文字一字をUTF-8でエンコードしたbyte値を得ることができる。 The Go Programming Lan…