What's the difference? 'Will' and 'be going to'

Will + infinitive Be going to + infinitive
A decision at the moment of speaking:

Julie: There's no milk.
John: Really? In that case, I'll go and get some.
A decision before the moment of speaking:

Julie: There's no milk.
John: I know. I'm going to go and get some when this TV programme finishes.
A prediction based on opinion:

I think the Conservatives will win the next election.
A prediction based on something we can see (or hear) now:

The Conservatives are going to win the election. They already have most of the votes.
A future fact:

The sun will rise tomorrow.
For promises / requests / refusals / offers:

I'll help you tomorrow, if you like.

More examples:

Other points about the future:

We use the present continuous tense for definite future arrangements. Often, it doesn't really matter if we choose 'be going to' or the present continuous. In the following example, there is really very little difference in meaning: We use the present simple tense in two cases. First, we use it for a timetabled event in the future, like public transport or the start of a class: Second, we use it after certain words, when the sentence has a future meaning. These words are: before / after / as soon as / until / when: