0123

LOGS

  • golang の勉強(というか復習)の続き

    • github のコード行数を計算したく,golang で書いてみる
    • 厳密には Gemini に書かしている
    • 以下解説

      • monthlyChanges := make(map[string]int)

        • := これは変数の宣言と代入なのは覚えている
        • map 関数はキーバリューのペアを格納するもの
        • map[string]int 型を指定

          • string map のキーの型を文字列型に指定
          • int map の値の型を int 型に指定
          • こんな感じで使える

            monthlyChanges["January"] = 100
            monthlyChanges["February"] = -50
            monthlyChanges["March"] = 200
            
        • for _, commit := range commits {}

          • いわゆる for 文
          • commits がループ対象(map, スライス,配列)
          • range 配列,スライス,map などの要素に順番にアクセスするためのキーワード.インデックスと値を取得できる
          • _(ブランク識別子) 値を破棄するために使う.今回はインデックスがいらないので破棄している
    • スライス とは

      • 配列に似たもの(違い)
        • サイズが可変
        • 参照型
        • var 変数名 []データ型 ← こう書く
      • スライスの作成にはいくつかある

        1. make() 関数を使う

        2. 例 1(長さ 5 の int 型スライス): numbers := make([]int, 5)

        3. 例 2(長さ 5, 容量 10 の int 型スライス): numbers := make([]int, 5, 10)

        4. リテラルを使う

          • 例: numbers := []int{1, 2, 3, 4, 5}
        5. 配列からスライスを作る
        array := [5]int{1, 2, 3, 4, 5}
        slice := array[1:4] // スライス slice は {2, 3, 4} を持つ
        
      • スライスの操作

        • 要素へのアクセス
          • 配列と同様にインデックスを使う(例: numbers[0] // 1を出力
        • 要素の追加

          • append() 関数を使って末尾に追加

            numbers := []int{1, 2, 3}
            numbers = append(numbers, 4, 5) // numbers は {1, 2, 3, 4, 5} になる
            
        • スライスの結合

          • append() 関数を使って複数のスライスを結合

            slice1 := []int{1, 2}
            slice2 := []int{3, 4}
            combined := append(slice1, slice2...) // combined は {1, 2, 3, 4} になる
            
        • スライスの長さ

          • len() 関数を使う(例: len(numbers) // 5
        • スライスの容量
          • cap() 関数を使う(例: cap(numbers) // 10
    • 出力

      • fmt.Println() も良いが,オブジェクトの出力なら,fmt.Printf("%+v\n", 変数) を使うと良さそう

results matching ""

    No results matching ""