Поскольку Стивен уже ответил на вопрос, и вы начинающий, я подчеркиваю, что даю советы.
. Лучше работать с интерфейсами go - это не иметь конструктора, возвращающего интерфейс, как вы могли бы использовать с другими языками, такими как java, но иметь конструктор для каждого объекта независимо, поскольку они реализуют интерфейс неявно.
Вместо
newModel(type string) Model { ... }
вы должны сделать
newPerson() *Person { ... }
newPolitician() *Politician { ... }
с Person
и Politician
, реализующими методы Model
. Вы все равно можете использовать Person
или Politician
везде, где принят Model
, но вы также можете реализовать другие интерфейсы.
С помощью вашего метода вы будете ограничены Model
, пока не выполните ручное преобразование в другой тип интерфейса.
Предположим, что у меня есть Person
, который реализует метод Walk()
и Model
реализует ShowOff()
, следующее не будет работать прямо:
newModel("person").ShowOff()
newModel("person").Walk() // Does not compile, Model has no method Walk
Однако это будет:
newPerson().ShowOff()
newPerson().Walk()
К счастью, все работает сейчас, и, к сожалению, я не помню, как я его исправил :) Возможно, в моем .emacs
ранее была ошибка. Это более правильный код:
(add-to-list 'auto-mode-alist '("\\.m$" . octave-mode))
Автозагрузка в последних версиях не требуется; если вам нужно включить его, обратите внимание, что "octave-mode"
не является опечаткой.
(autoload 'octave-mode "octave-mod" nil t)
Просто столкнулся с этой точной проблемой. Ваше утверждение верное, но ваш файл .emacs, вероятно, не загружается правильно. Emacs ищет переменную «HOME» для загрузки предпочтений, кода lisp и т. Д.
Чтобы узнать, какая ваша переменная HOME:
Откройте буфер нуля (это «место для игры» на попробуйте все):
C-x C-b *scratch* <RET>
Оцените это выражение, набрав его, затем поместите курсор вправо, а затем нажмите Cx Ce
insert (getenv "HOME")
. Emacs отобразит ваш домашний путь внизу (мои дефолты по умолчанию ... Documents and Settings \ UserName) Я не разработал хороший способ его изменить, но вы должны просто добавить HOME как переменную среды (это не работа для меня).
Здесь также сказано немного больше: http://www.gnu.org/software/emacs/manual/html_node/emacs/Windows-HOME.html
Также помните, что файл должен быть «.emacs», а не myConfig.emacs или что-то подобное. Используйте команду bash ren, чтобы переименовать файл (Windows Explorer не позволит вам иметь безымянные файлы)
Используйте это.
;; octave-mode
(autoload 'octave-mode "octave-mode" "Loding octave-mode" t)
(add-to-list 'auto-mode-alist '("\\.m\\'" . octave-mode))