Go練習問題3-01:関数の定義と呼出しを理解しよう

記事内に商品プロモーションを含む場合があります

Go言語の初心者向け問題3-1:関数の戻り値を理解しよう

この問題を解くために必要な知識:
レベル1~2の知識関数の定義と呼び出し関数の戻り値と複数の戻り値関数の可変長引数無名関数(匿名関数)クロージャ構造体の定義とコンストラクタ関数構造体の埋め込みメソッドの定義とレシーバインターフェース型アサーション型スイッチ

<<前の問題 問題集Top 次の問題>>

Go言語の文法「関数の定義と呼び出し」とは





ここでは関数の定義と呼び出しの意味や使い方を復習します。必要ない方はここをクリックして練習問題へ飛びましょう。

「関数」はプログラムの基本的な構成要素です。関数を使うことで、コードを整理し、再利用性を高めることができます。

関数の定義とは

関数の定義は、特定の処理をひとまとまりにしたもので、その処理に名前を付けることができます。これにより、同じ処理を何度も書く必要がなくなり、コードをシンプルに保つことができます。

Go言語での関数の定義の基本形は以下の通りです。

func 関数名(引数のリスト) {
    // 関数内の処理
}

具体例:メッセージを表示する関数

次に、メッセージを表示するだけのシンプルな関数の例を見てみましょう。

package main

import "fmt"

// メッセージを表示する関数
func greet(name string) {
    fmt.Printf("こんにちは、%sさん!\n", name)
}

func main() {
    greet("太郎")
}

この例では、greetという名前の関数を定義しています。この関数は、引数として受け取った名前を使ってメッセージを表示します。main関数では、greet関数を呼び出し、”ながみえ”という名前を渡しています。

関数の呼び出しとは

関数を定義しただけでは、プログラムは何も実行しません。関数を実行するためには、関数を「呼び出す」必要があります。関数の呼び出しは、関数名の後に括弧を付け、その中に必要な引数を渡します。

例えば、上記の例では、greet("太郎")という呼び出しを行っています。この部分が実際に関数を動かしている箇所です。

関数の戻り値について

今回は、戻り値を持たない関数について説明しましたが、Go言語では戻り値を持つ関数も定義できます。これにより、計算結果などを関数から受け取ることができます。戻り値のある関数については、次の記事で詳しく解説します。

まとめ

関数を正しく使うことで、プログラムをより見やすく、保守しやすくすることができます。関数の定義と呼び出しは、Go言語に限らず、すべてのプログラミング言語に共通する重要な概念です。初心者の方はまず、この基礎をしっかりと押さえておきましょう。

Go練習問題3-1:関数を使ったメッセージの繰り返し表示

指定されたメッセージを複数回表示するプログラムを作成しましょう。

関数を定義し、その関数を使ってメッセージを指定された回数だけ表示してください。

この問題の要件

以下の要件に従ってコードを完成させてください。

  • 関数 repeatMessage を定義し、引数として整数型の count と文字列型の message を受け取ること。
  • 関数 repeatMessage 内で for 文を使用して、指定された回数だけメッセージを表示すること。
  • main 関数内で repeatMessage 関数を呼び出し、 "こんにちは、Go言語!" というメッセージを3回表示すること。

ただし、以下のような実行結果となるコードを書くこと。

*****↓↓正解コードの実行結果の例↓↓*****

こんにちは、Go言語!
こんにちは、Go言語!
こんにちは、Go言語!

この問題を解くヒント

1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。

ヒント1【コードの構成を見る】

正解のコードは上から順に以下のような構成となっています。

1.import文の使用
2.mainパッケージの宣言
3.関数repeatMessageの定義
 3-1. 引数として整数型のcountと文字列型のmessageを受け取る
 3-2. for文を使い、count回ループを実行
  3-2-1. fmt.Printlnでmessageを出力
4.main関数の定義
 4-1. 関数repeatMessageを呼び出し、”こんにちは、Go言語!”を3回表示

ヒント2【穴埋め問題にする】

以下のコードをコピーし、コメントに従ってコードを完成させて下さい。

package main

import "fmt"

// メッセージを複数回表示する関数
// この関数は、引数として回数とメッセージを受け取り、指定された回数だけメッセージを表示します。
func repeatMessage(count int, message string) {
    /*【穴埋め問題1】
    ここにfor文を使ってcount回ループし、その中でmessageを表示するコードを書いてください。
    */
}

func main() {
    // repeatMessage関数を呼び出し、メッセージを3回表示
    repeatMessage(/*【穴埋め問題2】ここにループの回数として3を指定するコードを書いてください。*/, "こんにちは、Go言語!")
}

このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。

解答例と解説

この問題の一つの正解例とそのコードの解説を以下に示します。

正解コードの例

例えば以下のようなプログラムが考えられます。

package main

import "fmt"

// メッセージを複数回表示する関数
// この関数は、引数として回数とメッセージを受け取り、指定された回数だけメッセージを表示します。
func repeatMessage(count int, message string) {
    for i := 0; i < count; i++ {
        fmt.Println(message)
    }
}

func main() {
    // repeatMessage関数を呼び出し、メッセージを3回表示
    repeatMessage(3, "こんにちは、Go言語!")
}

正解コードの解説

このコードは、関数の定義と呼び出しを学ぶためのもので、具体的には、指定した回数だけメッセージを表示する関数を使います。

import文の使用

import "fmt"

fmtパッケージは、Go言語の標準ライブラリに含まれており、文字列のフォーマットや出力を行うために使います。

このコードでは、fmt.Printlnを使用してメッセージをコンソールに表示します。

関数の定義:repeatMessage

func repeatMessage(count int, message string) {
    for i := 0; i < count; i++ {
        fmt.Println(message)
    }
}

この部分は、関数の定義を示しています。

関数repeatMessageは、countmessageという2つの引数を受け取ります。countはメッセージを繰り返す回数、messageは表示する文字列です。

関数内では、forループを使って指定された回数だけメッセージを表示します。関数を定義することで、コードを再利用しやすく、より整理されたものにできます。

main関数

func main() {
    repeatMessage(3, "こんにちは、Go言語!")
}

main関数は、Goプログラムのエントリーポイントです。このプログラムが実行されると、main関数が最初に呼び出されます。

ここでは、repeatMessage関数を呼び出して、”こんにちは、Go言語!”というメッセージを3回表示します。

関数を使うことで、メッセージを簡潔に何度も出力することができます。

<<前の問題 問題集Top 次の問題>>

この問題への質問・コメント

この問題を作成するにあたりAIを活用しています。

問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。






    Go練習問題集へ戻る
    トップページへ戻る