読者です 読者をやめる 読者になる 読者になる

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))
}

http://play.golang.org/p/4ytA1cOJ1d

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")
}

http://play.golang.org/p/Qt7EPb-4kF

安定してよく使っているiOS/Androidアプリまとめ

↓の記事見てたら、なんとなくまとめたくなってきたのでまとめ。


2014年版、2ちゃんねるでテンプレ入りしたiPhoneの神アプリ150選 : IT速報

使っている端末

仕事ではNexus5(Lollipop)、iPhone 5sも使ってます。

よく使うアプリ

カテゴライズは上記事を借用します。

2ch

してないのでアプリ必要なし。検索かはてブで行き着くことはあります。

ブラウザ

iOSは基本SafariChromeは使い勝手微妙*1だけどPCとの連携は便利。

AndroidChrome。前の端末(4.0)の時はChromeFirefoxも重かったので標準ブラウザ使ってました。

ウェブクリップ

しない。ブクマか要点をEvernoteにまとめるので十分。

メール

どちらもGmailに集約しつつあります。

もっとも、メールの処理はPCで行うことが多く、スマホで見ることはあまり無いのが実情です。

ランチャー

非使用。ホーム画面を整理する派です。横断検索も使わないですね。

ニュース

基本的にパッシブな情報収集はホッテントリだけですね。

RSS

昔使ってましたが、未読放置ばかりになるので使うのやめました。

天気防災

特になし。ウィジェットググるTwitter検索で十分。

ファイラー

同列で並べると違和感ありますが、強いてあげるならこれです*2

iOSは定番のGoodReader。とはいえほぼPDFリーダーと化してますが。PDFをクロップして読めるのが非常に良いです。

AndroidYahoo!ファイルマネージャーが割りと細かいところまで手が込んでいて良いと思います*3Yahoo!という安心感もあります。初回起動時にホーム画面にショートカット作ったりステータスバー占拠したりすることだけがネックです。

クラウド、ストレージ

Google DriveはPC非同期で大きめのファイル中心、DropboxはPC同期で小物中心という使い分けしてます。

RAS (リモートデスクトップ?)

特になし。昔はいろいろ試しましたが、結局使う機会ないというのが結論です。

お恥ずかしいことにRAS(Remote Access Service)って言葉初めて聞いたのですがVPN的なものなのですね。そういういみでは元記事のカテゴリ名はリモートデスクトップの方が正しいと思います。

ID、パスワード

KeePassに統一。kbdファイルはDropboxで共有してます*4

メモ、テキスト

基本Evernoteです。

日記

特になし。

スケジュール、ToDo、GTD

  • iOS: 標準カレンダー
  • Android: 標準カレンダー

ToDoは結局使わなくなりました。シンプルに使えればそれで十分。

電話帳

iPhone使ってないのでiOSは無し。

Androidは4.0の時は色々試しましたが、4.4ではプリインストールに落ち着きました。

アドレス送受信

特になし。

コミュニケーション

基本公式アプリしかない世界なので、テンプレもなにもないとは思いますが、普通にLineとかです。

Twitter

何故か別枠のTwitter。使用頻度低いので公式で不満無いです。

画像編集

色々入ってますが、結局PCでしか画像編集してないというのが結論。

カメラ

色々入れてはみるものの、なんだかんだで標準アプリしか使わない現実。

QR、スキャナ

iOSみたら色々入ってました。Androidはドコモのプリインのやつ使ってます。

使用頻度低いんで正直動けば何でもいいですね。

録音

特になし。強いて言うなら標準アプリ。

音楽再生

  • iOS: 標準
  • Android: 音楽プレイヤーとして使ってないので N/A

色々葛藤はありましたが*5、今は標準アプリです。

自動プレイリストやイコライザは使わない派です。

音楽検索、歌詞検索

ニーズがないので特になし。

ラジオ

色々入れたけど使った試しがないので省略。

動画

特になし。

ダウンロード

特になし。

書籍ビューア

GoodReaderは前述の通り。書籍系は最近Kindleにガバガバ。

辞書

ググる

地図

PC版Google MapsのUI、使いづらいのでなんとかして欲しいです。

ナビ、電車

Yahoo!乗換案内、文句の付け所がほぼないですね。

メモリ管理

特になし。この手のアプリをあまり信用してないということもあり。

電卓

あまり使う機会無いので何でもいいと思います。

家計簿

社会人になってお金入ってくるようになったので、検討し始めようかという所。

タイマー

標準の時計アプリで十分です。

広告除去

使ってない。

キーボード

iOSのカスタムキーボードアプリ、増えてきた印象ありますが、まだ使ってないです。

AndroidGoogle日本語入力QWERTY入力で上フリックで数字入れられるのがマジで便利です。

株式、FX

特になし。

航空機運行状況

特になし。

ネット将棋

このカテゴリは一体…。

有料制のようですが24アプリ出てたんですね。

まとめ

  • 標準アプリが多い。
  • 特になし、が多い。

アプリの使用頻度に関しても80対20の法則が成り立つ気がしていて、なるべく2割のアプリに絞ろうというのが信条です。

それが、標準アプリや特になしの増加に繋がっているのかなと思ってます。

*1:バックグラウンドのタブの挙動とか

*2:そもそもiOSでファイラ?とも思いますが。

*3:ファイルの移動とか、隠しファイルの表示とか

*4:KeePassXがkbdx未対応なので今のところkbdで統一

*5:iOS側で作ったプレイリストをiTunesでも出したい→標準アプリしか選択肢なし。しかしiOS7のプレイリスト編集機能は最悪!だったがiOS8で若干改善し一応使えるレベルに←イマココ