はじめに
このチャレンジでは、Go 言語の無名関数(Anonymous Functions)の機能を活用して、柔軟な数値変換関数を作成していただきます。科学技術計算において、数値データセットの解析や加工を行う際、データの変換処理は非常に重要な役割を果たします。このチャレンジの目的は、整数のスライスに対してさまざまな種類の数学的演算を適用できる transformNumbers 関数を実装する能力をテストすることです。
柔軟な数値変換システムの設計
科学技術計算の分野では、数値データセットを分析・処理するためにデータ変換が不可欠です。このチャレンジでは、Go の無名関数を利用して、汎用性の高い数学的変換関数を構築するスキルを磨きます。
タスク
- 整数のスライスと無名関数を引数として受け取る
transformNumbers関数を実装してください。 - この関数は、入力されたスライスの各要素に対して変換処理を適用する必要があります。
- 変換後の数値を含む新しいスライスを返却してください。
main関数内で少なくとも 2 種類の異なる変換処理を作成し、関数の柔軟性を実証してください。
要件
~/projectディレクトリにあるmath_transform.goファイルを使用してください。- 無名関数をコールバックとして利用するように
transformNumbers関数を実装してください。 - 変換関数は、異なる種類の数学的演算に対応できる必要があります。
- 元のスライスが変更されない(イミュータブルである)ことを確認してください。
main関数で変換後のスライスを出力してください。
実行例
main 関数を実行して、入力スライスに対する異なる変換処理をテストします。
go run math_transform.go
入力と出力の例:
Input slice: [1, 2, 3, 4, 5]
Squared numbers: [1 4 9 16 25]
Doubled numbers: [2 4 6 8 10]
ヒント
- 入力スライスの反復処理には
rangeを使用します。 - 異なる変換ロジックを持つ無名関数を作成します。
- 元のスライスを直接書き換えるのではなく、新しいスライスを作成して返すことを忘れないでください。
まとめ
このチャレンジでは、整数のスライスに対してさまざまな数学的変換を適用できる transformNumbers 関数を Go で実装しました。この関数は引数として無名関数を受け取るため、柔軟でカスタマイズ可能な変換が可能です。main 関数で少なくとも 2 つの異なる変換処理を作成することで、その柔軟性を確認しました。この課題を通じて、無名関数の扱い方や、再利用可能な変換ロジックの構築方法を習得できたはずです。



