- CodinGameで遊んでる時にすぐ頭に浮かばなかった構文をまとめてます.
- import文は省略しています.
配列・文字列長
len(arr)
string->int
val, _ := strconv.Atoi("100")
string->float
val, _ := strconv.ParseFloat("1.5", 64)
Upper/Lower
strings.ToUpper("hoge")
strings.ToLower("HOGE")
Index/LastIndex
strings.Index("chicken", "ken")
strings.LastIndex("hoge.png", ".")
HasPrefix(startsWith)/Suffix(endsWith)
strings.HasPrefix("aiueo", aiu)
strings.HasPrefix("aiueo", eo)
Trim
strings.Trim(val, " ")
文字列カット(slice)
str[5:10] // start:end (lengthではない)
str[5:]
str[:10]
文字列split
arr := strings.Split("a,b,c", ",")
文字(char/rune)->int
val := int('Z')
配列初期化
arr := make([]string, 99)
Map初期化
dic := make(map[string]string)
リスト回し
for _, obj := range list {
}
ソート
arr := make([]int, 100)
//...
sort.Ints(arr)
Switch
switch val {
case 0:
case 1:
case 2:
default:
}
三項演算子
- ない
可変長引数
func Hoge(args ...int) int {
piyo := args[0]
struct定義
type KeyVal struct {
key string
val string
}
// メソッド定義
func (obj *KeyVal) check(key string) string {
if obj.key == key {
return obj.val
}
return ""
}
// 使う時
var kv KeyVal
kv.key = "hoge"
kv.val = "piyo"
kv.check("hoge")
// もしくはこう
kv := KeyVal{key: "hoge", val: "piyo"}