✨ คำตอบที่ดีที่สุด ✨
canは<(法)助動詞>,be able toは<動詞>です。
can / may / will / must / should などの<(法)助動詞>は,基本的に『話し手の主観(=考えや気持ち)』を文に付け加える働きをします。
したがって,
He can swim.
という文は本来,「彼には泳ぐ能力があって,今,泳ごうと思えば泳げるはずだ」という『話し手の主観(=考えや気持ち)』を表現したものです。
これを過去について述べる形に変えると,
He could swim.
という過去形の文になるわけですから,この文は,「彼には泳ぐ能力があって,(そのとき,)泳ごうと思えば泳ぐことはできた」という意味を表します。
実際に泳いでみたかどうかに関係なく,ただその能力はあったという意味なので,日本語の「やった!できた!」の感覚と常に一致するわけではないことがお分かりいただけますでしょうか。
be able toは,現在形(am / are / is able to)ではcanとほぼ同じ意味を表しますが,過去形(was / were able to)ではcould[←can]との意味の差が割と明確です。
すなわち,日本語の「やった!できた!」に近い意味を表せるということです。
He was able to swim.
は,「実際に泳いでみて,泳ぎ切ることができた」というような過去の事実を述べる文です。
日本語の「できた」に無闇矢鱈に飛びついてcouldを使うと,「しようと思えばできた(けどしなかった...かも)」というニュアンスになり上手く伝わらない場合があることを押さえておきましょう。