LoginSignup
21
19

More than 5 years have passed since last update.

golang コーディングテストで使うメソッド・テクニックまとめ

Last updated at Posted at 2016-02-13

空白なし入力受け付け

go
package main

import "fmt"

func main() {
   var hoge string
   fmt.Scan(&hoge)
   fmt.Println(hoge)
}

空白あり入力受け付け

go
package main

import (
    "os"
    "fmt"
    "bufio"
)

func main() {
    sc := bufio.NewScanner(os.Stdin)
    var s string
    if sc.Scan() {
    s = sc.Text()
    }
    fmt.Println(s)
}

//複数回使う場合はメソッド化

func Scanner() []string {
    sc := bufio.NewScanner(os.Stdin)
    var s string
    if sc.Scan() {
        s = sc.Text()
    }
    slice := strings.Split(s, " ")
    return slice
}


型変換(文字列=>数値)

go

package main

import (
    "fmt"
    "strconv"
)

func main() {
    foo := "1"
    bar, _ := strconv.Atoi(foo)
    fmt.Println(bar)
}

型変換(数値=>文字列)

go

package main

import (
    "fmt"
    "strconv"
)

func main() {
    val := strconv.Itoa(123)
    fmt.Println(val)
}

型チェック

go
package main

import (
    "fmt"
    "reflect"
)

func main() {
    val := "hoge"
    v := reflect.ValueOf(val)
    fmt.Println(v.Type())
}

置換

go

package main

import (
    "fmt"
    "strings"
)

func main() {
    var hoge := "2016 07 07"
    hoge = strings.Replace(hoge, " ", "/", -1)
    // 第4引数は「-1」の場合はすべて置換、「1」の場合は初めに一致した要素を置換
    fmt.Println(hoge)
}

文字列を分割して配列を返す

go

package main

import (
    "fmt"
    "strings"
)

func main() {
    s := "a b c d e"
    slice := strings.Split(s, " ")
    fmt.Println(s)
}

フォーマット変更

go

package main

import (
    "fmt"
)

func main() {
    ans := []int{ 0, 0 }
    answer := fmt.Sprintf("%d %d", ans[0], ans[1])
    fmt.Println(answer)
}

forループ(その1)

go

package main

import "fmt"

func main() {
    slice := []int{1, 2, 3, 4, 5}
    for i := 0; i < len(slice); i++ {
      fmt.Println(slice[i])
    }
}

forループ(その2)

go

package main

import "fmt"

func main() {
    slice := []int{1, 2, 3, 4, 5}
    for _, v := range slice {
      fmt.Println(v)
    }
}

21
19
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
21
19