昨日に続いてGo言語
いろいろとややこしい。テスト前のチュートリアル時に絶対値のエラーが取れなくてあきらめて自前でつくる。
package main
import("fmt";"strings";"strconv";"math";"sort")
func Rev(arr []string)[]string{ // 反転 *
varr = []string{}
fori:=0;i<len(arr);i++{ // for
r = append(r, arr[len(arr)-i-1])// 長さ len()
}
return r
}
func main() {
fmt.Println("<文字列>")
fmt.Println(1,"a",len("123")) // 表示
fmt.Println("a"[0]) // ord
fmt.Println(strings.ToUpper("aAbB"))// 大文字
fmt.Println(strings.ToLower("aAbB"))// 小文字
fmt.Println(string(65)) // chr
fmt.Println(string("ABC"[1] + 1)) // chr
fmt.Println("0123456789"[1:8]) // 部分抽出
fmt.Println(strings.Replace("ceeeec","e","a",-1)) // 置換
fmt.Println(strconv.Itoa(123)+"4") // 文字列化
fmt.Println("<数値>")
variint
i, _ = strconv.Atoi("123") // 数値化 *
fmt.Println(math.Abs((float64)(i - 100)), i%10)// 絶対値 * 余り
fmt.Printf("%d\n", 010) // 8進数 -> 10進数
fmt.Printf("%d\n", 0x10) // 16進数 -> 10進数
fmt.Printf("%b\n", 255) // 10進数 -> 2進数
s := fmt.Sprintf("%o", 255) // 10進数 -> 8進数 Sprintfで代入できる *
fmt.Println(s)
fmt.Printf("%x\n", 255) // 10進数 -> 16進数
fmt.Println("<配列>")
vararr = strings.Split("aa bb cc dd", " ")// split
fmt.Println(arr[0]) // 取得
arr = append(arr, "ccc") // 追加
sort.Strings(arr) // ソート 文字列
fori, v := range arr{ // forで回す 添字ついてくる
fmt.Println(i, v)
}
fmt.Println(Rev(arr)) // 反転
vararr2 = []int{1, 3, 2, 5, 4} // 数値の配列
sort.Ints(arr2) // ソート 数値
fmt.Println(arr2[:]) // スライス全件
}