【プロクラ】代入できないのは何故ですか?

今回のテーマ

みなさん、こんにちは!

デジタルステーション習志野スタッフの小島です。

今日はプロクラの授業で実際にあったエラーについて紹介をしたいと思います。

状況の説明 ブロックのおもちゃのイラスト | かわいいフリー素材集 いらすとや

 

問題提起

先日のプロクラの授業中に以下のような表記が出てしまいプログラムが実行できないという問題が発生しました。

解決案

「Type 'Position' is not assignable to type 'nummber'.」とあるので、どこかのプログラムで変数valueが数字として既に扱われているから、他の変数を使いました。

解説

エラー文の意味

Type 'Position' is not assignable to type 'nummber'.

上述の文は「数値型の変数にポジション型の値は代入できない」ということを言っています。

つまり変数valueが扱えるのは数値であり、ポジション型が扱えないためエラーが出ています。

(※MakeCode由来の変数の型:座標を扱う)

コードで見てみよう

実際に上記のコードをjavascriptに変換して見てみましょう。

そうすると、変数宣言がletで行われています。

javascriptでletで宣言された変数は再定義ができない仕様です。

つまり、MakeCodeで変数を扱う際には数字を扱うのか座標を扱うのかなどを意識しないといけません。

まとめ

今回はMakeCodeの変数の仕様で起こったエラーについて説明しました。

上記のようにプログラミングでは変数でどのようなデータを扱うかを意識しないといけない時があります。

ですが、もし間違えてしまってもエラー文を見れば何が問題かはある程度わかります。

それでも、もしわからなかったら先生を頼ってください。

 

考えてみよう!

なんで種類があるんですか?

今回のエラーは数値型(number)とポジション型(position)と変数とデータの種類が違うことから発生しました。

なんで、変数に種類があるのでしょう?

 

 

 

無料体験 いつでもお問い合わせ下さい

デジタルステーション習志野

〒274-0063 船橋市習志野台4-1-7 習志野駅前郵便局2F