0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Goの使い方2

Posted at

#ループを一定期間休む
Goで一定周期で何かを行う方法

import(“time”)
time.Sleep(3 * time.Second)

#乱数を生成する
Goでrandを使うときは忘れずにSeedを設定しないといけない
Goにはcrypto/randというセキュアな乱数生成器

seed, _ := crand.Int(crand.Reader, big.NewInt(math.MaxInt64))
rand.Seed(seed.Int64())
fmt.Println(rand.Int63())

#標準入力から変数の値を受け取る
goでfmt.Scanする際の注意点

#Scan関数

func Scan(a ...interface{}) (n int, err os.Error)
fmt.Scan(&a, &b)
fmt.Println(a, b)

#文字列の検索
Go言語_文字列操作
fmtパッケージ

	str := "The Go Programming Language"

	// 文字列が含まれるか判定する。
	if strings.Contains(str, "Go") {
		fmt.Println("Contains return true!")
	}

	// 開始文字列を判定する。
	if strings.HasPrefix(str, "Th") {
		fmt.Println("HasPrefix return true!")
	}

	// 終端文字列を判定する。
	if strings.HasSuffix(str, "age") {
		fmt.Println("HasSuffix return true!")
	}

	// 文字列から特定の部分文字列を検索する。
	// 先頭から検索して見つかった文字列位置を返す。
	// 見つからない場合は -1 を返す。
	if idx := strings.Index(str, "Program"); idx != -1 {
		fmt.Printf("Found. (index = %d)\n", idx)
	}

	// 末尾から検索して見つかった文字列位置を返す。
	// 見つからない場合は -1 を返す。
	if idx := strings.LastIndex(str, "a"); idx != -1 {
		fmt.Printf("Found. (index = %d)\n", idx)
	}

request.goでUUID=1234567890(乱数)を標準出力
scan.goでUUID=1234567890(乱数)を検出して数値の抽出して標準出力する

request.go

package main

import(
        "fmt"
        "time"
        crand "crypto/rand"
        "math"
        "math/rand"
        "math/big"
)

$ vi request.go
$ go build request.go
$ vi scan.go
$ go build scan.go
$ ./request | ./scan
2550519028152033468
1331746663370969294


func main() {
        for {

            seed, _ := crand.Int(crand.Reader, big.NewInt(math.MaxInt64))
            rand.Seed(seed.Int64())
            s :=rand.Int63()
            fmt.Printf("UUID=%v\n",s)
            time.Sleep(1 * time.Second)
        }
}

scan.go

package main

import (
    "fmt"
    "strings"
)

func main() {
    var a string
    dst := ""

    for {
    fmt.Scan(&a)
    if strings.Contains(a,"UUID"){
        dst = strings.Replace(a, "UUID=", "", 1)
        fmt.Println(dst)
    } else {
        fmt.Printf("none\n")
    }

    }
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?