Это ожидаемое поведение, поскольку ваш язык является реальным классом, а не чем-то более гибким.
Возможные решения:
Используйте суперкласс для ваших языков, например
class LanguageEnglish: Language { }
class LanguageHindi: Language { }
var constantCL: Language = LanguageEnglish()
Вместо этого используйте протокол и внедрите его в свои языковые классы (почти то же, что и выше, разница в реализации и объявлении):
class LanguageEnglish: Language { }
class LanguageHindi: Language { }
var constantCL: Language = LanguageEnglish()
Или, может быть, используйте enum для представления ваших языков или подобную более элегантную конструкцию, если она соответствует вашим потребностям:
enum Language {
case english
case hindi
// Other useful stuff
}
var constantCL: Language = .english
constantCL = .hindi