Go言語の初心者向け問題1-7:ビルトイン関数を理解しよう
この問題を解くために必要な知識:
コメントの書き方、変数と定数、基本データ型、型のエイリアス、文字列操作、ポインタの基本、nilの概念、ビルトイン関数、算術演算子とビット演算子、標準入力と出力、import文の使用
<<前の問題 | 問題集Top |
次の問題>> |
Go言語の文法「ビルトイン関数」とは
ここではビルトイン関数の意味や使い方を復習します。必要ない方はここをクリックして練習問題へ飛びましょう。
Go言語には、プログラムのさまざまな場面で便利に使える「ビルトイン関数」と呼ばれる関数がいくつか提供されています。
これらは言語自体に組み込まれており、追加のパッケージをインポートすることなく、すぐに使用することができます。
代表的なビルトイン関数の例
以下に、初心者にとって特に重要なビルトイン関数をいくつか紹介します。
- len()
- 概要: 配列、スライス、マップ、チャンネルの長さや要素数を返します。
- 使用例:
n := len([]int{1, 2, 3}) // nは3になります
- append()
- 概要: スライスに要素を追加します。元のスライスを変更するのではなく、新しいスライスを返します。
- 使用例:
s := append([]int{1, 2}, 3) // sは[1, 2, 3]になります
- copy()
- 概要: 一つのスライスから別のスライスに要素をコピーします。コピーされた要素の数を返します。
- 使用例:
copy(s1, s2)
(ここで、s1
とs2
はスライス)
ビルトイン関数の特長
これらのビルトイン関数は、パフォーマンスを意識して最適化されており、Goの基本的なデータ構造やアルゴリズムを効率的に処理するのに役立ちます。
たとえば、len()
関数はO(1)の時間で結果を返すように設計されており、大規模なデータセットを扱う際にも高速です。
まとめ
Go言語のビルトイン関数は、プログラムを効率的に書くための強力なツールです。
これらの関数を理解し、適切に使いこなすことで、コードの読みやすさと保守性が向上します。
初心者の方は、まずはこれらの基本的なビルトイン関数をしっかり理解し、さまざまなプログラムで活用してみてください。
Go練習問題1-6:ビルトイン関数の使い方を学ぼう
ビルトイン関数を使用したプログラムを作成しましょう。
この問題の要件
以下の要件に従ってコードを完成させてください。
- 整数型の変数
number1
を10
、number2
を20
で初期化する。 fmt.Println()
を使ってnumber1
とnumber2
の値を標準出力に表示する。- 文字列
message
に「こんにちは、Go言語!」を代入し、len()
関数でその文字列の長さを取得して表示する。 - 整数型ポインタ変数
ptr
をnil
で初期化し、その値を表示する。 number1
とnumber2
を足し合わせた結果をsum
に代入し、表示する。
ただし、以下のような実行結果となるコードを書くこと。
*****↓↓正解コードの実行結果の例↓↓*****
数値1: 10 数値2: 20 メッセージの長さ: 29 ポインタの初期値: <nil> 合計: 30
この問題を解くヒント
1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。
正解のコードは上から順に以下のような構成となっています。
1.package main
パッケージ宣言
2.import "fmt"
パッケージのインポート
3.main
関数の定義
3-1. 整数型の変数 number1
と number2
を宣言および初期化
3-2. 標準出力に number1
と number2
の値を表示
3-3. 文字列変数 message
を宣言し、”こんにちは、Go言語!” を代入
3-3-1. len()
関数を使って message
の長さを取得し、標準出力に表示
3-4. 整数型ポインタ変数 ptr
を宣言し、nil
で初期化
3-4-1. ptr
の値を標準出力に表示
3-5. number1
と number2
を足し合わせた結果を sum
に代入
3-5-1. sum
の値を標準出力に表示
以下のコードをコピーし、コメントに従ってコードを完成させて下さい。
package main import "fmt" func main() { // 変数の宣言と初期化 var number1 int = 10 var number2 int = 20 // fmt.Println() を使って数値を出力 /*【穴埋め問題1】 ここに number1 と number2 を標準出力に表示するコードを書いてください。 */ // 文字列の長さを取得 message := "こんにちは、Go言語!" /*【穴埋め問題2】 ここに len() 関数を使って message の長さを取得し、標準出力に表示するコードを書いてください。 */ // nilを使ったポインタの初期化 var ptr *int = nil /*【穴埋め問題3】 ここに ptr の値を標準出力に表示するコードを書いてください。 */ // 算術演算子を使った加算 sum := number1 + number2 /*【穴埋め問題4】 ここに sum の値を標準出力に表示するコードを書いてください。 */ }
このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。
解答例
この問題の一つの正解例とそのコードの解説を以下に示します。
正解コードの例
例えば以下のようなプログラムが考えられます。
package main import "fmt" func main() { // 変数の宣言と初期化 var number1 int = 10 var number2 int = 20 // ビルトイン関数println()を使って標準出力に表示 fmt.Println("数値1:", number1) // 数値1を出力 fmt.Println("数値2:", number2) // 数値2を出力 // ビルトイン関数len()を使った文字列の長さの取得 message := "こんにちは、Go言語!" fmt.Println("メッセージの長さ:", len(message)) // 文字列の長さを出力 // nilを使ったポインタの例 var ptr *int = nil fmt.Println("ポインタの初期値:", ptr) // nilのポインタを出力 // 算術演算子を使って数値を足し合わせる sum := number1 + number2 fmt.Println("合計:", sum) // 合計を出力 }
正解コードの解説
このコードでは、Go言語の基本的な要素を使って、変数の宣言、標準出力、文字列操作、ポインタ、そして算術演算の例を紹介しています。以下にコードの各部分を解説します。
変数の宣言と初期化
var number1 int = 10 var number2 int = 20
ここでは、var
キーワードを使って、number1
とnumber2
という2つの整数型(int
)変数を宣言し、それぞれ10と20の値で初期化しています。Goでは、変数の型を明示的に指定する必要がありますが、型推論も可能です。
標準出力への表示
fmt.Println("数値1:", number1) fmt.Println("数値2:", number2)
この部分では、Goの標準ライブラリに含まれるfmt
パッケージを使って、Println
関数でコンソールに出力を行っています。
Println
は、引数に与えた値を一行ずつ表示するビルトイン関数です。
ビルトイン関数len
を使った文字列の長さ取得
message := "こんにちは、Go言語!" fmt.Println("メッセージの長さ:", len(message))
len
関数は、文字列やスライスの長さを返すGoのビルトイン関数です。このコードでは、文字列message
の長さを取得して表示しています。
nilを使ったポインタの初期化
var ptr *int = nil fmt.Println("ポインタの初期値:", ptr)
ここでは、ポインタptr
を宣言し、初期値としてnil
を設定しています。nil
は、Goにおいて「何も指していない」ことを表す特別な値です。
算術演算子による計算
sum := number1 + number2 fmt.Println("合計:", sum)
最後に、number1
とnumber2
を足し合わせた結果をsum
という変数に格納し、その合計を出力しています。
<<前の問題 |
問題集Top |
次の問題>> |
この問題への質問・コメント
この問題を作成するにあたりAIを活用しています。
問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。