Структурная и номанативная типизация
От: x-code  
Дата: 18.04.11 06:10
Оценка:
Похожая тема уже была здесь
Автор: VladD2
Дата: 06.03.11
, но меня интересует нечто другое.
Возможно одновременное существование структурной и номинативной типизации в обычном си-подобном языке программирования? Как можно оформить это синтаксически — чтобы было красиво и понятно?
Для примера — вариант в Scala:
class File(name: String) {
  def getName(): String = name
  def open() { /*..*/ }
  def close() { println("close file") }
}
def test(f: { def getName(): String }) { println(f.getName) }

test(new File("test.txt"))
test(new java.io.File("test.txt"))

В Go вроде бы тоже есть нечто подобное, но не нашел примера
А можно сделать еще лучше? При этом (важно!) не ломая классического синтаксиса обычной номинативной типизации ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.