Go не имеет общих типов, но вы можете посмотреть, как sort работает, чтобы найти обходной путь. Что они делают, так это создать такой интерфейс:
type Interface interface {
// Len is the number of elements in the collection.
Len() int
// Less returns whether the element with index i should sort
// before the element with index j.
Less(i, j int) bool
// Swap swaps the elements with indexes i and j.
Swap(i, j int)
}
И теперь для любого настраиваемого типа вы можете создать соответствующий настраиваемый тип коллекции, который можно отсортировать. Алгоритм сортировки должен иметь дело только с целыми числами и булевыми значениями, и поэтому не видит и не заботится о том, каковы основные типы данных.
"Мир является Плоским" Thomas Friedman.
Передовой опыт в программировании требований инвестиции умственной энергии и посвящения длительному изучению, сопоставимому с профессиями медицины или закона. Это платит часть того, что те профессии платят, а тем более заработная плата, выплаченная математически опытный, кто направляется в финансовый сектор. И заработная плата для код построения разрушает, потому что это - профессия, которая является относительно легка для интеллектуального и самодисциплинированного в большинстве экономических систем для ввода.
Программирование уже разрушило на грани оплаты меньше, чем, скажем, инфраструктура. Инфраструктура не может быть "offshored". Вы не должны платить 2 395$ для посещения Конференции Профессионального Водопроводчика через год для полномочия получения совершенно нового набора инфраструктуры технологий, которые возьмут Вас год для изучения.
, Если Вы живете в Северной Америке или Европе, молоды, и умны, программирование не является рациональным выбором профессии. Компании, что включают программирование, абсолютно. Изучите бизнес, знайте достаточно о программировании для совершенствования детектора БАКАЛАВРА НАУК: блестящий. Но выделяя львиную долю Вашей умственной энергии к мастерству библиотек, структур данных и алгоритмов? То единственное имеет смысл, если программирование - что-то больше Вам, чем экономический выбор.
, Если Вы любовь программирование и по этой причине намереваетесь сделать его Вашей карьерой, тогда Вам надлежит разрабатывать трезвое понимание сил, которые являются и продолжат, для создания его более трудной и более трудной профессией, в которой можно зарабатывать на жизнь. "Мир является Плоским", не будет учить Вас, что назвать Ваши переменные, но он погрузит Вас в течение 6 или 8 часов в экономических фактах, которые уже имеют , прибыл. Если можно считать его, и не пугаться, тогда выходят и покупают "Завершенный Код".
Я думаю, что "Искусство Программирования Unix" является превосходной книгой превосходным хакером / блестящим умом как Eric S. Raymond, который пытается заставить нас понять несколько принципов разработки программного обеспечения (простота главным образом). Эта книга - необходимость для каждого программирования, кто собирается запустить проект под платформой Unix.
@Peter Coulton - Вы не читаете Knuth, Вы изучаете его.
Для меня и моей работы... Чисто Функциональные Структуры данных является большим для размышления и разработки с функциональными языками в памяти.
Я нашел "Искусство Пролога" очень хорошим чтением.
Факты и Ошибки Разработки программного обеспечения Robert L. Glass является действительно превосходной книгой. Я был профессиональным хакером в течение почти 10 лет, прежде чем я считал его, и я все еще изучил тонну материала.
усовершенствованное программирование в среде UNIX W. Richard Stevens.
Сугубо деловой, практичный, интересный, глубокий.
Работа Эффективно с Унаследованным кодом является действительно удивительной книгой, которая вдается в большие подробности о том, как к правильно модульному тесту Ваш код и каково истинное преимущество его. Это действительно открыло мои глаза.
Читайте Главные Первые Шаблоны разработки для намного более доступного введения, чем книга GoF. Я не забываю чувствовать, что я выровнял после каждой главы.
Kent Beck Разработка через тестирование Примером для TDD.
Я думаю, что рос в различном поколении, чем больше всего здесь....
Одна из самых влиятельных книг я читал, был APUE.
Или в значительной степени что-либо W. Richard Stevens.
Roger S. Pressman - Разработка программного обеспечения (Подход Практиков). Это имеет большую полезную информацию.
Завершенный код является выбором номер один, но я также процитировал бы Банду Шаблонов разработки Four и Применения Craig Larman UML и Шаблонов.
Бесконечный Способ Создать, Christopher Alexander, является другим большой. Даже при том, что это о archtecture, это включено в библиографию многих замечательных книг программирования, которые я уже прочитал.
Другой, из которого я узнаю о большом количестве новых вещей, является Шаблонами Доступа к данным Клифтонской Зарубкой.
Я был arounda, в то время как, так большинство книг, что я нашел влиятельными, не обязательно применяется сегодня. Я действительно полагаю, что универсально важно понять платформу, которую Вы разрабатываете для (и аппаратные средства и ОС). Я также думаю, что важно научиться на других ошибках народов. Таким образом, две книги, которые я рекомендовал бы:
Вычислительные Бедствия и В поисках Глупости: более чем Двадцать лет Высоких Технических Маркетинговых Бедствий
Кодируете ли Вы в Smalltalk или не , Шаблоны Лучшей практики Smalltalk являются большим чтением. Полный маленьких наблюдений, которые изменят способ, которым Вы кодируете; к лучшему.
Никто, кажется, не упомянул Stroustup Язык Программирования на C++ , который является замечательной книгой, которую должен прочитать каждый программист на C++.
я также думаю что Объясненное Экстремальное программирование: Изменение Объятия должно быть считано каждым программистом и менеджером. Многие идеи в книге общеизвестны теперь, но книга делает интеллектуальный и вдохновляющий отчет о преследовании качества в разработке программного обеспечения.
я был бы второй рекомендации для Knuth и Gang Четыре, которые являются классикой.
чтобы быть усовершенствованным в прологе, мне нравятся эти две книги:
действительно открывает ум для схем рекурсии и логического программирования.
Это не могло бы рассчитать как "книга разработки", но я должен добавить ее так или иначе: Хакеры Stephen Levy. Я нашел, что это говорило с эмоциональной стороной программирования.
Самая влиятельная книга программирования для меня была Достаточно Веревки для Стрельбы в в Ноге Allen Holub .
Обложка книги http://ecx.images-amazon.com/images/I/71AE90J735L._SL500_AA240_.gif
O, ну, в общем, когда это было.
Я удивлен, что нет никакого упоминания еще об этой книге: Стартовый Forth, Leo Brodie. После того, как весь Forth, будучи стековым языком, должен соответствовать аудитории на этом сайте...
По общему признанию, Forth является странным языком и не очень популярный в эти дни. Но эта книга является радостью для чтения. И это имеет мультфильмы! Книга, а также другая книга Brodie, Интеллектуальный Forth, оба доступна бесплатно в сети.
Совершенно новое Мышление, Daniel Pink. Интересное взятие на будущем нашей промышленности.
я принимаю большинство людей, читающих, это уже прочитает книги наверху списка. Так, я предложу книгу, которая бросает различный взгляд на нашу промышленность.
сопроводительный текст http://www.danpink.com/images/wnm.jpg
Это не прямой ответ на вопрос, потому что я чувствую, что ему уже ответили выше, однако, одна из книг, которые определенно оказали влияние на то, как я кодирую, Чтение кода, Объем 1: Перспектива С открытым исходным кодом .
сопроводительный текст http://g.bookpool.com/covers/405/0201799405_140_30O.gif
сопроводительный текст http://ecx.images-amazon.com/images/I/61dECNkdnTL._SL500_AA240_.jpg
C++, Как к Программе Это хорошо для новичка. Это - превосходная книга, настолько полная вместе с 1 500 страницами.
дискретная математика Для Программистов J.K. Связка.
, В то время как это не преподает Вам программирование, оно учит Вам фундаментальную математику, что каждый программист должен знать. Можно помнить, что этот материал из университета, но действительно, делая логику предикатов улучшит Вас программирующий навыки, необходимо изучить Теорию множеств, если Вы хотите к программе с помощью наборов.
действительно существует большая интересная информация в здесь, которая может получить Вас думающий о проблемах по-разному. Удобно иметь, только взять время от времени для изучения чего-то нового.
Я - большой поклонник большинства заголовков Robert C. Martin, особенно Гибкая разработка программного обеспечения, Принципы и Методы и Чистый Код: Руководство Гибкого Мастерства программного обеспечения .
Схема Schaum Программирования с C++ John R Хаббард.
Это было первой книгой программирования, которую я прочитал, когда я начал с C++. Это было одаренным мне кем-то, кто видел мой интерес к программированию. Книга очень хороша для новичков - она начала с элементарных понятий, подошел к шаблонам и векторам. Данные примеры были довольно релевантны. Книга заставила Вас обдумать и задать больше вопросов и испытать вещи для себя.
В дополнение к предложениям других людей я рекомендовал бы или получение копии SICP, или чтение его онлайн . Это - одна из нескольких книг, что я считал, что чувствую значительно , увеличил мой навык в разработке программного обеспечения, особенно в создании хороших уровней абстракции.
книга А, которая не является непосредственно связана с программированием, но является также хорошим чтением для программистов (IMO), Конкретная Математика . Большинство, если не все темы в нем полезны для программистов для знания о, и это делает лучшее задание объяснения вещей, чем какая-либо другая книга по математике, которую я прочитал до настоящего времени.
Объектно-ориентированное программирование в Turbo C++ . Не супер популярный, но это было то, которое запустило меня и было первой книгой, которая действительно помогла мне grok, каков объект был. Считайте этот waaaay назад в средней школе. Это вид приносит слезу к моему глазу...
Поскольку столько людей перечислило Главные Первые Шаблоны разработки, которые я согласовываю, очень хорошая книга, я хотел бы видеть раз так многих людей, знающих о заголовке, названном Объясненные Шаблоны разработки: Новый Взгляд на Объектно-ориентированный Дизайн .
Этот заголовок имеет дело с шаблонами разработки превосходно. Первая половина книги очень доступна, и остающиеся главы требуют, чтобы только твердое схватывание содержания уже покрыло причину, я чувствую, что вторая половина книги менее доступна, то, что это покрывает шаблоны, что я, как молодой разработчик, по общему признанию недостающий опыта, не использовал много.
Этот заголовок также представляет понятие позади шаблонов разработки, касаясь начальной работы Christopher Alexander в архитектуре к GoF, сначала реализовывая документирование шаблонов в SmallTalk.
я думаю, что любой, кто наслаждался Главными Первыми Шаблонами разработки, но все еще находит GoF очень сухим, должен изучить Шаблоны разработки, Объясненные как намного более читаемый (хотя не совсем как всесторонние) альтернатива.
Я сказал бы, что" Вне Кода - Учатся Отличаться на 9 Простых Шагах ", вполне хорошая и мотивационная книга. Я не охватываю технические проблемы, но это описывает способы работать с людьми, будучи профессиональным... Для меня это - книга, которую можно прочитать снова и снова, если Вы нуждаетесь в некотором разговоре о бодрости духа. Помимо этого, это дешево и очень легко и приятно читать за 3 - 4 часа.
существует немного обзора, законченного в мой блог .