A: 私も中学生の頃機械的に覚えていました。実を言うとこれは常に正しいわけではありません。
“I will have a farewell party for him.”と“I’m going to have a farewell party for him.”
“I will have a farewell party for him.”
⇒瞬間的に彼のさよならパーティーを開くことを思いついた。
“I’m going to have a farewell party for him.”
⇒既に彼のさよならパーティーを計画していて、実行に移すのみ。
つまり、“will” は「その場でしようと決めた(予め決めていなかった)未来」を話す時に使うのに対して “be going to” は、話している時点では「既に決まっている(予定している)未来」を話す時に使います。
別の例を挙げます。
Will you marry me? (結婚してくれる?)は、英語のプロポーズの決まり文句ですが、相手の意思を聞いているので Are you going to marry me? とは普通言いません。
なお次のように予想を行う場合は“will” と “be going to”は同様に使うことができます。
I think it will rain tomorrow. = I think it is going to rain tomorrow.(明日は雨が降ると思います。)
状況をちょっと考えればわかる気がしますが、会話でとっさに使うとなると、使い分けはやっぱり難しいですね。