你说的是teach的一种用法,其实还有一种用法,词典释意如下:
If you teach or teach a subject, you help students to learn about it by explaining it or showing them how to do it, usually as a job at a school or college. 教 (某一科目); 教书
例句:
Mary is currently teaching mathematics at the high school.
玛丽目前在那所中学教数学。
She has taught for 34 years.
她教书已有34年。
所以答案has taught是对的,"teach English"就是"教英语"的意思,只不过教的对象没有表明而已。
teach English: 教英语,其中,English 就是 teach 的直接宾语。
teach the students English: 教学生们英语,其中 students 是间接宾语,English 是直接宾语。
此句中并没有涉及到间接宾语。
所以,此处填 has taught 对的:
Mr. Green has taught English in a middle school for ten years.
你纠结个什么,说白了, 你就是认为答案,不符合你自己的思维体系。
这里有两种用法:
teach sb. sth.
teach sth.
这里是第二种。
所以, 面向大海,放开思维。
其实不一定要交代教谁,比如说I teach Chinese in England,也是一个完整的句子,这句话里面主要体现的是我做的动作,而不是强调我是教谁.
teach和english之间不用加宾语,teach english就是教英语课,不用存在说教谁的问题。
英语中一般会省略众所周知的宾语,教英语,肯定是要教学生英语,学生在这里不需要强调的时候是可以省略的。所以has taught是正确的。