新しい関数
Coddyの「Golangの関数とポインタ」コースのレッスン 3/19。
前回のレッスンでは、変数とは、その空間を指す名前を持つメモリ内のオブジェクトまたは空間であることを学びました。
Goには、メモリ内に名前のない空間を作成する関数があり、それはnew()関数の助けを借りて行います。構文は次のとおりです。
coddy := new(string)ここでは、coddyという名前でstring型のオブジェクトを作成しました。new()関数はそのオブジェクト(空間)へのポインタを返します。
名前を出力すると、この空間のメモリ番地が表示されます:
fmt.Println("Value:", coddy)結果は次のようになります:
Value: 0xc000014070次のように、このポインタに値を再代入できます:
coddy := new(string)
*coddy = "Learn To Code with coddy"
fmt.Println("Value:", *coddy)結果は次のようになります:
Value: Learn To Code with coddynew()関数でポインタを作成する場合、デフォルト値はnilではないことに注意してください。変数と同様に、型に依存します。型がintの場合、デフォルト値は0です。stringの場合は空の文字列、booleanの場合はfalseになります。
チャレンジ
簡単ユーザーから入力を受け取り、以下の処理を行うプログラムを作成してください:
- new() 関数を使用して、int 型のポインタを作成します。
- ポインタの default 値を出力します。
- ユーザーが入力した value をそのポインタに代入します。
- assignment 後のポインタの値を出力します。
自分で試してみよう
package main
import (
"fmt"
)
func main() {
// ユーザーからの入力を受け取ります。ここは変更しないでください!
var num int
fmt.Scanln(&num)
// new() 関数を使用して int 型のポインタを作成します。
// ポインタのデフォルト値を出力します。
fmt.Println("Default value of the pointer:", ?)
// ユーザーによって入力された値をそのポインタに代入します
// 代入後のポインタの値を出力します。
fmt.Println("Value of the pointer after assignment:", ?)
}
Golangの関数とポインタのすべてのレッスン
1はじめに
はじめに