Menu
Coddy logo textTech

パッケージとインポート

CoddyのGOジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 3/107。

すべてのGoファイルは、package宣言で始まります。importキーワードは、Goの標準ライブラリからパッケージを取り込み、その関数を使用できるようにします。

単一のパッケージをインポートする

import "fmt"

インポートブロックを使用して、複数のパッケージをインポートします。

import (
    "fmt"
    "math"
    "strings"
)

インポートしたパッケージの関数は、パッケージ名をプレフィックス(接頭辞)として使用します。

package main

import (
    "fmt"
    "strings"
    "math"
)

func main() {
    upper := strings.ToUpper("hello")
    fmt.Println(upper) // 出力: HELLO

    root := math.Sqrt(16)
    fmt.Println(root) // 出力: 4
}

一般的な標準ライブラリパッケージ

"fmt"     // フォーマット済みI/O (Print, Scan, Sprintf)
"strings" // 文字列操作 (ToUpper, Contains, Replace)
"math"    // 数学関数 (Sqrt, Pow, Pi)
"strconv" // 文字列変換 (Itoa, Atoi)

パッケージの関数にアクセスするには、packagename.FunctionName を使用します。Goでは、実際に使用するパッケージのみをインポートできます。使用されていないインポートはコンパイルエラーになります。

challenge icon

チャレンジ

中級

関数が正しく動作するように、utils.go のインポート文を修正してください。strings パッケージと math パッケージをインポートする必要があります:

  • FormatTextstrings.ToUpper を使用します
  • ContainsWordstrings.Contains を使用します
  • SquareRootmath.Sqrt を使用します

チートシート

すべてのGoファイルはpackage宣言から始まります。Goの標準ライブラリからパッケージを取り込むには、importキーワードを使用します。

単一のパッケージをインポートする:

import "fmt"

インポートブロックを使用して複数のパッケージをインポートする:

import (
    "fmt"
    "math"
    "strings"
)

packagename.FunctionNameを使用して、インポートされたパッケージの関数にアクセスします:

package main

import (
    "fmt"
    "strings"
    "math"
)

func main() {
    upper := strings.ToUpper("hello")
    fmt.Println(upper) // 出力: HELLO

    root := math.Sqrt(16)
    fmt.Println(root) // 出力: 4
}

一般的な標準ライブラリパッケージ:

"fmt"     // フォーマット済みI/O (Print, Scan, Sprintf)
"strings" // 文字列操作 (ToUpper, Contains, Replace)
"math"    // 数学関数 (Sqrt, Pow, Pi)
"strconv" // 文字列変換 (Itoa, Atoi)

注意:Goでは実際に使用するパッケージのみをインポートできます。使用されていないインポートはコンパイルエラーの原因となります。

自分で試してみよう

package main

import (
    "bufio"
    "fmt"
    "os"
    "strconv"
    "strings"
)

func main() {
    scanner := bufio.NewScanner(os.Stdin)
    scanner.Scan()
    line := scanner.Text()

    parts := strings.Fields(line)
    numStr := parts[len(parts)-1]
    text := strings.Join(parts[:len(parts)-1], " ")
    num, _ := strconv.ParseFloat(numStr, 64)

    fmt.Printf("Upper: %s\n", FormatText(text))
    fmt.Printf("Contains 'world': %t\n", ContainsWord(text, "world"))
    fmt.Printf("Sqrt: %.2f\n", SquareRoot(num))
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

オブジェクト指向プログラミングのすべてのレッスン