package main
import "fmt"
func main() {
dict := map[string]int{
"foo": 1,
}
//存在する
if val, ok := dict["foo"]; ok {
fmt.Printf("foo exists. The value is %#v", val)
}
//存在しない
if _, ok := dict["foo"]; ok {
fmt.Printf("foo not exists")
}
2016年6月9日木曜日
Go Lang mapのキーが存在しているか確認
2016年5月24日火曜日
golang 時間を引数としてプログラムに渡す
Code
//整数を受け取って、Millisecondの倍数の時間でスリープ、既定は1000ミリ秒
multipleOfMS := flag.Int("m", 1000, "msの倍数")
flag.Parse()
time.Sleep(multipleOfMS * time.Millisecond)
Error
invalid operation: multipleOfMS * time.Millisecond (mismatched types *int and time.Duration)
Int型をtime.durationに変更
multipleOfMS := flag.Int("m", 1000, "msの倍数")
flag.Parse()
time.Sleep(time.Duration(multipleOfMS) * time.Millisecond)
やはりエラー
cannot convert multipleOfMS (type *int) to type time.Duration
いろいろ調べてflag.Durationというのがあってこっちを使うmultipleOfMS := flag.Duration("m", 1 * time.Second, "-m=2sのように設定")
flag.Parse()
time.Sleep(*multipleOfMS)
実行
//5秒sleep
go run main.go -m=5s
//500ミリ秒sleep
go run main.go -m=500ms
2016年5月14日土曜日
MAC golang インストールとGOPATH設定
GOのmacへのインストールとGOPATHの設定をメモします
install
$ brew install go
インストール先が/usr/local/goとなるはずです。GO workspace作成
GOのworkspace(どこでもいい)を作成して、GOのソースコードとパッケージ、実行可能なバイナリファイルを格納します。一般的に以下のように配置します。
例:…work/
.../gowork/src
.../gowork/pkg
.../gowork/bin
GOPATH設定
GO workspaceを決めたので、GOPATHを設定します。workspaceのbinとGoのインストール先binも合わせて追加しておきます。$ mkdir $HOME/c-ye/gowork
$ vi ~/.bash_profile
export GOPATH=$HOME/c-ye/gowork
PATH=$PATH:$GOPATH/bin:/usr/local/go/bin
これで$HOME/c-ye/goworkの下にプロジェクトごとにソースを配置します。また、godepをインストールした場合は
$ go get github.com/tools/godep$HOME/c-ye/goworkのフォルダ中身が以下のようになる。
bin
godep #実行可能
pkg
darwin_amd64
github.com/tools/godep/
src
github.com/tools/godep/
diff.go
go.go
main.go
......
testGO/ #自分のプロジェクト
main.go
とりあえずこんな感じです。詳しいはこちらを https://golang.org/doc/code.html#Overview
登録:
投稿 (Atom)