Go練習問題1-2:基本データ型を理解しよう

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

Go言語の初心者向け問題:基本データ型を理解しよう

この問題を解くために必要な知識:
コメントの書き方、変数と定数基本データ型型のエイリアス文字列操作ポインタの基本nilの概念ビルトイン関数算術演算子とビット演算子、標準入力と出力、import文の使用

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




Go言語の文法「基本データ型」とは

練習問題の前に基本データ型の意味や使い方を復習します。必要ない方はここをクリックして練習問題へ飛びましょう。

Go言語を学び始めたばかりの方にとって、基本データ型の理解は非常に重要です。プログラムでデータを扱う際に、適切なデータ型を選ぶことがプログラミングの基礎となります。

基本データ型の種類

Go言語では、以下のような基本データ型が用意されています。

  1. 整数型(int, int8, int16, int32, int64)
    • 整数を扱います。ビット数が異なる複数のバリエーションがあります。
    • 使用例: var a int = 42
  2. 浮動小数点型(float32, float64)
    • 小数点を含む数値を扱います。標準的に使用されるのは float64 です。
    • 使用例: var b float64 = 3.14
  3. 文字列型(string)
    • 文字列を扱います。Goでは文字列は不変であり、変更はできません。
    • 使用例: var c string = "Hello, Go!"
  4. ブール型(bool)
    • true または false の真偽値を扱います。
    • 使用例: var d bool = true

データ型の型推論と型変換

Go言語では、変数宣言時に型を指定しない場合、自動的に型が推論されます。また、必要に応じて型変換を行うこともできます。

型推論の例

var e = 100 // int型として推論される

型変換の例

var f int = 10
var g float64 = float64(f) // intからfloat64に変換

まとめ

Go言語の基本データ型は、プログラミングにおいて基礎的かつ重要な要素です。適切なデータ型を理解し、活用することで、効率的でエラーの少ないコードを書くことができます。

初心者の方は、まずはこれらの基本データ型をしっかりと覚え、練習問題を通じて使いこなせるようにしましょう。

Go練習問題1-1:ユーザー入力を使ってデータを操作しよう

ユーザーから入力された数値や文字列を使って、Go言語の基本データ型と型変換を学びましょう。

必要な変数を定義し、それらの変数の値を使って処理を行い、結果を画面に表示するプログラムを作成してください。

この問題の要件

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

  1. 整数型の変数 a を定義し、42を代入すること。
  2. 浮動小数点数型の変数 b を定義し、3.14を代入すること。
  3. 文字列型の変数 c を定義し、「こんにちは、Go!」を代入すること。
  4. ブール型の変数 d を定義し、true を代入すること。
  5. 整数型の変数 afloat64 型に変換し、その結果を変数 e に代入すること。
  6. 浮動小数点数型の変数 bint 型に変換し、その結果を変数 f に代入すること。
  7. x という名前の変数に型推論を使って 10 を代入すること。
  8. y という名前の変数に型推論を使って 3.14 を代入すること。
  9. z という名前の変数に型推論を使って「Go言語」を代入すること。
  10. すべての変数の値を標準出力に表示すること。

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

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

整数: 42
浮動小数点数: 3.14
文字列: こんにちは、Go!
ブール値: true
型変換された浮動小数点数: 42
型変換された整数: 3
型推論された変数x: 10
型推論された変数y: 3.14
型推論された変数z: Go言語

この問題を解くヒント

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

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

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

1.main関数の定義
1-1. int型の変数aの定義と初期化
1-2. float64型の変数bの定義と初期化
1-3. string型の変数cの定義と初期化
1-4. bool型の変数dの定義と初期化
1-5. 変数afloat64に型変換し、変数eに代入
1-6. 変数bintに型変換し、変数fに代入
1-7. 型推論を用いて変数xの定義と初期化
1-8. 型推論を用いて変数yの定義と初期化
1-9. 型推論を用いて変数zの定義と初期化
1-10. 各変数の値を標準出力に表示

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

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

package main

import "fmt"

func main() {
    // 整数型の変数aを宣言し、42を代入
    /* 【穴埋め問題1】
    ここに整数型の変数aを宣言し、42を代入するコードを書いてください。
    */

    // 浮動小数点数型の変数bを宣言し、3.14を代入
    /* 【穴埋め問題2】
    ここに浮動小数点数型の変数bを宣言し、3.14を代入するコードを書いてください。
    */

    // 文字列型の変数cを宣言し、「こんにちは、Go!」を代入
    /* 【穴埋め問題3】
    ここに文字列型の変数cを宣言し、「こんにちは、Go!」を代入するコードを書いてください。
    */

    // ブール型の変数dを宣言し、trueを代入
    /* 【穴埋め問題4】
    ここにブール型の変数dを宣言し、trueを代入するコードを書いてください。
    */

    // 変数aをfloat64型に型変換し、変数eに代入
    /* 【穴埋め問題5】
    ここに変数aをfloat64型に型変換し、その結果を変数eに代入するコードを書いてください。
    */

    // 変数bをint型に型変換し、変数fに代入
    /* 【穴埋め問題6】
    ここに変数bをint型に型変換し、その結果を変数fに代入するコードを書いてください。
    */

    // 型推論を使って変数xに10を代入
    /* 【穴埋め問題7】
    ここに型推論を使って変数xに10を代入するコードを書いてください。
    */

    // 型推論を使って変数yに3.14を代入
    /* 【穴埋め問題8】
    ここに型推論を使って変数yに3.14を代入するコードを書いてください。
    */

    // 型推論を使って変数zに「Go言語」を代入
    /* 【穴埋め問題9】
    ここに型推論を使って変数zに「Go言語」を代入するコードを書いてください。
    */

    // すべての変数の値を出力
    fmt.Println("整数:", a)
    fmt.Println("浮動小数点数:", b)
    fmt.Println("文字列:", c)
    fmt.Println("ブール値:", d)
    fmt.Println("型変換された浮動小数点数:", e)
    fmt.Println("型変換された整数:", f)
    fmt.Println("型推論された変数x:", x)
    fmt.Println("型推論された変数y:", y)
    fmt.Println("型推論された変数z:", z)
}

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

解答例

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

正解コードの例

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

package main

import "fmt"

func main() {
    // 変数の宣言と初期化
    // int型の変数aを宣言し、42を代入
    var a int = 42
    
    // float64型の変数bを宣言し、3.14を代入
    var b float64 = 3.14
    
    // string型の変数cを宣言し、日本語の文字列を代入
    var c string = "こんにちは、Go!"

    // bool型の変数dを宣言し、trueを代入
    var d bool = true

    // 変数の型変換
    // int型の変数aをfloat64型に変換して、変数eに代入
    var e float64 = float64(a)
    
    // float64型の変数bをint型に変換して、変数fに代入
    var f int = int(b)
    
    // 変数の型推論
    x := 10    // xはint型
    y := 3.14  // yはfloat64型
    z := "Go言語" // zはstring型

    // 出力
    // 各変数の値を標準出力に表示
    fmt.Println("整数:", a)
    fmt.Println("浮動小数点数:", b)
    fmt.Println("文字列:", c)
    fmt.Println("ブール値:", d)
    fmt.Println("型変換された浮動小数点数:", e)
    fmt.Println("型変換された整数:", f)
    fmt.Println("型推論された変数x:", x)
    fmt.Println("型推論された変数y:", y)
    fmt.Println("型推論された変数z:", z)
}

正解コードの解説

このGoプログラムは、基本的なデータ型の宣言と初期化、型変換、型推論、および標準出力について学ぶためのものです。

整数型の変数 a の定義と初期化

var a int = 42

int型の変数aを宣言し、値として42を代入しています。このようにして整数型のデータを扱います。

浮動小数点数型の変数 b の定義と初期化

var b float64 = 3.14

float64型の変数bを宣言し、値として3.14を代入しています。float64は浮動小数点数を扱うための型です。

文字列型の変数 c の定義と初期化

var c string = "こんにちは、Go!"

string型の変数cを宣言し、”こんにちは、Go!” という文字列を代入しています。

ブール型の変数 d の定義と初期化

var d bool = true

bool型の変数dを宣言し、trueを代入しています。boolは真偽値(trueまたはfalse)を扱う型です。

型変換を行う変数 ef の定義

var e float64 = float64(a)
var f int = int(b)

変数afloat64型に変換し、変数eに代入しています。同様に、変数bint型に変換し、変数fに代入しています。これにより、異なるデータ型間の変換が可能です。

型推論を用いた変数 x, y, z の定義

x := 10
y := 3.14
z := "Go言語"

ここでは型推論を使用しています。:=演算子を使うことで、Go言語が自動的に変数の型を決定します。xint型、yfloat64型、zstring型として扱われます。

標準出力

fmt.Println("整数:", a)
fmt.Println("浮動小数点数:", b)
fmt.Println("文字列:", c)
fmt.Println("ブール値:", d)
fmt.Println("型変換された浮動小数点数:", e)
fmt.Println("型変換された整数:", f)
fmt.Println("型推論された変数x:", x)
fmt.Println("型推論された変数y:", y)
fmt.Println("型推論された変数z:", z)

最後に、fmt.Printlnを使用して、各変数の値を標準出力に表示しています。これにより、変数の内容がどのように設定されているかを確認できます。

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

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

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

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






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