structの関数プロパティとメソッドの挙動
package main import "fmt" type OpFunc func(int, int) int type Operation struct { // associateされていないのでOperationのプロパティ・メソッドへのアクセスは出来ない。 Do1 OpFunc // 以下コメントを外すと "type Operation has both field and method named Do2" //Do2 OpFunc } func (op Operation) Do2(a, b int) int { return op.Do1(a, b) } func main() { op := &Operation{ Do1: func(a, b int) int { return a + b }, } fmt.Println(op.Do1(1, 2), op.Do2(3, 4)) }
golangのType Assertionメモ
- Type AssertionはC++のdynamic_cast的な機能。
- interfaceを別の型にキャストする時に使用。
- 2通りの受け方がある。
package main import ( "fmt" "errors" ) type MyError struct { i int } func (e *MyError) Error() string { return fmt.Sprintf("i = %d", e.i) } func check1(e error) { myErr, ok := e.(*MyError) if ok { fmt.Println(myErr) } else { fmt.Println("It's not *MyError") } } func check2(e error) { myErr := e.(*MyError) if myErr != nil { fmt.Println(myErr) } else { fmt.Println("It's not *MyError") } } func main() { e100 := &MyError{100} e200 := errors.New("200") check1(e100) check1(e200) check2(e100) check2(e200) // panic }
http://play.golang.org/p/MY2G3J_QPU
package main import ( "fmt" "strconv" ) func Println(x interface{}) { if i, ok := x.(int); ok { fmt.Println(strconv.Itoa(i)) return } if i, ok := x.(int64); ok { fmt.Println(strconv.FormatInt(i, 10)) return } if _, ok := x.(string); ok { fmt.Println("ニヤ(・∀・)ニヤ") return } } func main() { Println(int(100)) Println(int64(200)) Println("300") }
安定してよく使っているiOS/Androidアプリまとめ
↓の記事見てたら、なんとなくまとめたくなってきたのでまとめ。
2014年版、2ちゃんねるでテンプレ入りしたiPhoneの神アプリ150選 : IT速報
使っている端末
仕事ではNexus5(Lollipop)、iPhone 5sも使ってます。
よく使うアプリ
カテゴライズは上記事を借用します。
ブラウザ
iOSは基本Safari。Chromeは使い勝手微妙*1だけどPCとの連携は便利。
AndroidはChrome。前の端末(4.0)の時はChromeもFirefoxも重かったので標準ブラウザ使ってました。
ウェブクリップ
しない。ブクマか要点をEvernoteにまとめるので十分。
ランチャー
非使用。ホーム画面を整理する派です。横断検索も使わないですね。
RSS
昔使ってましたが、未読放置ばかりになるので使うのやめました。
ファイラー
同列で並べると違和感ありますが、強いてあげるならこれです*2。
iOSは定番のGoodReader。とはいえほぼPDFリーダーと化してますが。PDFをクロップして読めるのが非常に良いです。
AndroidはYahoo!ファイルマネージャーが割りと細かいところまで手が込んでいて良いと思います*3。Yahoo!という安心感もあります。初回起動時にホーム画面にショートカット作ったりステータスバー占拠したりすることだけがネックです。
クラウド、ストレージ
Google DriveはPC非同期で大きめのファイル中心、DropboxはPC同期で小物中心という使い分けしてます。
RAS (リモートデスクトップ?)
特になし。昔はいろいろ試しましたが、結局使う機会ないというのが結論です。
お恥ずかしいことにRAS(Remote Access Service)って言葉初めて聞いたのですがVPN的なものなのですね。そういういみでは元記事のカテゴリ名はリモートデスクトップの方が正しいと思います。
ID、パスワード
日記
特になし。
アドレス送受信
特になし。
コミュニケーション
基本公式アプリしかない世界なので、テンプレもなにもないとは思いますが、普通にLineとかです。
画像編集
色々入ってますが、結局PCでしか画像編集してないというのが結論。
録音
特になし。強いて言うなら標準アプリ。
音楽検索、歌詞検索
ニーズがないので特になし。
ラジオ
色々入れたけど使った試しがないので省略。
動画
特になし。
ダウンロード
特になし。
辞書
ググる。
メモリ管理
特になし。この手のアプリをあまり信用してないということもあり。
家計簿
社会人になってお金入ってくるようになったので、検討し始めようかという所。
広告除去
使ってない。
キーボード
- iOS: 標準
- Android: Google日本語入力
iOSのカスタムキーボードアプリ、増えてきた印象ありますが、まだ使ってないです。
AndroidはGoogle日本語入力。QWERTY入力で上フリックで数字入れられるのがマジで便利です。
株式、FX
特になし。
航空機運行状況
特になし。
まとめ
- 標準アプリが多い。
- 特になし、が多い。
アプリの使用頻度に関しても80対20の法則が成り立つ気がしていて、なるべく2割のアプリに絞ろうというのが信条です。
それが、標準アプリや特になしの増加に繋がっているのかなと思ってます。