1
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 1 year has passed since last update.

【個人用】Go言語チートシート

Posted at

はじめに

本記事はGo言語再履修用に作成した

本文

関数

main

main.go
package main

func main() {
	println("Hello")
}

自作関数

main.go
package main

func main() {
	println(testfunc(1, 2))
}

func testfunc(a, b int) int {
	ans := a + b
	return ans
}

自作関数(戻値複数)

main.go
package main

func main() {
	res1, res2 := testfunc(2, 1)
	println(res1, res2)
}

func testfunc(a, b int) (int,int) {
	ans1 := a + b
	ans2 := a - b
	return ans1, ans2
}

配列(for文)

既知

main.go
package main

func main() {
	arr := []int{1, 2, 3}

	for i := 0; i < len(arr); i ++ {
		println(arr[i])
	}
}

未知

main.go
package main

func main() {
	arr := make([]int, 3)
	arr[0] = 1
	arr[1] = 2
	arr[2] = 3

	for i := 0; i < len(arr); i ++ {
		println(arr[i])
	}
}

結合

main.go
package main

func main() {
	arr1 := []int{1, 2, 3}
	arr2 := []int{4, 5, 6}
	arr := append(arr1, arr2...)

	for i := 0; i < len(arr); i ++ {
		println(arr[i])
	}
}

文字操作

文字→数値(Atoi)

main.go
package main

import "strconv"

func main() {
	str := "123"
	num, _ := strconv.Atoi(str)

	println(num)
}

文字→数値(ParseInt)(16進、2進)

main.go
package main

import "strconv"

func main() {
	str1 := "0x123"
	str2 := "0b101"
	num1, _ := strconv.ParseInt(str1, 0, 32)
	num2, _ := strconv.ParseInt(str2, 0, 32)

	println(num1, num2)
}

数値→文字

main.go
package main

import "fmt"

func main() {
	num := 123
	str := fmt.Sprintf("%d", num)

	println(str)
}

文字列分割

main.go
package main

import "strings"

func main() {
	str := "123,aiueo"
	arr := strings.Split(str, ",")

	for i := 0; i < len(arr); i++ {
		println(arr[i])
	}
}

文字結合

main.go
package main

func main() {
	str1 := "123"
	str2 := "aiueo"
	strs := str1 + str2

	println(strs)
}

機能群

CSVリード

main.go
package main

import (
	"bufio"
	"os"
	"strings"
)

func main() {
	res := readcsv("test.csv")

	for i := 0; i < len(res); i++ {
		for a := 0; a < len(res[i]); a++ {
			print(res[i][a] + ",")
		}
		println()
	}
}

func readcsv(fn string) [][]string {
	res := make([][]string, 0)

	fp, err := os.Open(fn)
	if err != nil {
		println("FILE OPEN ERROR")
	}
	defer fp.Close()

	sc := bufio.NewScanner(fp)
	for sc.Scan() {
		rescache := make([][]string, 1)
		rescache[0] = strings.Split(sc.Text(), ",")
		res = append(res, rescache...)
	}

	return res
}

ファイル出力

main.go
package main

import "os"

func main() {
	writeLine("test.txt", []string{"hoge", "fuga"})
}

func writeLine(fn string, strs []string) {
	fp, err := os.Create(fn)
	if err != nil {
		println("FILE ERROR")
	}
	defer fp.Close()

	for i := 0; i < len(strs); i++ {
		fp.WriteString(strs[i])
		fp.WriteString("\n")
	}
}

コマンドライン入力

main.go
package main

import "os"

func main() {
	println(os.Args[1])
}
1
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
1
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?