空白なし入力受け付け
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)
}
}