bam6o0の記憶域

忘備録になればいいな

Go言語の勉強記録3bit

基本的な型

  • Goにはクラスはなく型しかない。
  • 型は値だけではなくメソッドも持てる

論理値型

実行結果

$go run bool.go
true
  • 論理値を格納する変数はbool
  • リテラル定数trueまたはfalse
  • 変数宣言はvar変数名

数値型

実行結果

$go run number.go
12345
  • 数値を格納する変数は数値型を使用する。
  • Goではポインタの値は計算できない。

文字列型

実行結果

$go run string.go
あいう
  • 文字列を格納する変数にはstring型を使用する。
  • ++=で結合可能

文字列の長さを取得する

実行結果

$go run string_len.go
golang len 6
Go言語 len 8
  • 文字列はUTF-8エンコードされたbyte配列のように振る舞う
  • 配列と同様にlen()関数で長さを取得可能
  • インデックスを使ったアクセスも可能
  • UTF-8はマルチバイトより英語は1byteだが日本語は複数byte使用
  • len()が返すのは文字数ではなくバイト長

文字数のカウント

実行結果

$go run string_count.go
Go言語 len 4
  • 正しく文字数をカウントするにはunicode/utf8パッケージのRuneCountInString関数を使用
  • RuneとはUnicode文字のこと

型の宣言

実行結果

$go run type.go
124
  • 型を宣言することで新しい型を作成できる
  • C言語でのtyoedef
  • 宣言はtype+型名+基になる型

型の変換

実行結果

$go run convert.go
1234
1234
Ӓ
[211 146]
  • 値の型を他の型に変更する
  • 明示的に変換しないと整数型同士であっても代入や比較はできない。
  • 変換は変換先の型(変換する値)
  • 型名が演算子で始まるときは型名を()で囲む