演習 - 変数を使用してデータを格納する
この演習では、コンソールにコードを出力するプログラムを作成する方法を学習します。 初歩的な電卓プログラムを作成します。また、エラーが含まれているプログラムを分析し、そのエラーを修正する方法を学習します。
プロジェクトの作成
プロジェクトを作成することから始めましょう。 実行可能ファイル dotnet を使用して、コマンド ラインからプロジェクトを作成します。
コンソールで
dotnet newコマンドを実行します。dotnet new console --language F# -o Variables cd Variablesこのコマンドを実行すると、ディレクトリ Variables に新しい F# プロジェクトが作成されます。
Program.fs 内のコードを次のコードに置き換えます。
[<EntryPoint>] let main argv = printfn "Welcome to the calculator program" // read input from the console and assign to `sum` let sum = 0 printfn "The sum is %i" sum 0最初の
printfnステートメントは、プログラムのユーザーにウェルカム メッセージを表示します。 2 行目には、次の演習ユニットで実装するコードを記述する//で始まるコメントがあります。 次にlet sum = 0があります。 最後に、計算結果を保持するsum変数を作成します。dotnet runを実行してプログラムを実行します。dotnet run次の出力が表示されます。
Welcome to the calculator program The sum is 0
おめでとうございます! プロジェクトをスキャフォールディングし、プロジェクトの拡張を開始し、実行するところまで進みました。
エラーを修正する
どんな言語を使ったプログラミングの学習でも、その一環としてコンパイル エラーを認識して修正する方法を学習しなければなりません。 この演習のために、新しいプロジェクトをスキャフォールディングする必要があります。 先に進む前に、ディレクトリ構造の 1 つ上のレベルに戻る必要があります。
dotnet newを実行して、新しい F# プロジェクトをスキャフォールディングします。dotnet new console --language F# -o Errors cd ErrorsProgram.fs 内のコードを次のコードに置き換えます。
[<EntryPoint>] let main argv = let aNumber = 0 printfn "Here's a number %s" aNumber 0 // return an integer exit codeヒント
少し立ち止まり、このコード読んでみて下さい。 コードはコンパイルされると思いますか。 なぜそうなのでしょう? または、なぜそうではないのでしょう?
dotnet runを実行して、プロジェクトを実行します。dotnet run次のテキストのようなエラー メッセージが表示されます。
/<path>/Errors/Program.fs(8,34): error FS0001: This expression was expected to have type 'string' but here has type 'int' [/<path>/Errors/Errors.fsproj] The build failed. Fix the build errors and run again.エラー メッセージは "expected string but here was type int." (文字列が予期されていましたが、int 型でした) です。何が問題か理解できましたか。 問題は、フォーマッタ
%sではなく%iを使ったことです。関数printfnにはaNumber型の変数intを指定しているからです。 コードを修正しましょう。"printfn "Here's a number %s" aNumber" というコードがある行を見つけて、次のように変更します。
printfn "Here's a number %i" aNumberファイルを保存し、
dotnet runによって再度実行します。 次のような出力が表示されます。Here's a number 0
おめでとうございます! コードを読み、何が間違っているかを理解して、それを修正することで、プログラムをデバッグしました。 エラー メッセージを認識し、エラーを修正する方法を知ることは、開発者にとって不可欠なスキルです。