Используется ли кнопка блокировки прокрутки больше? [закрыто]

Обновление в мае 2013 года: официальная документация находится в разделе « Организация кода »

Код Go должен храниться внутри рабочей области. Рабочее пространство представляет собой иерархию каталогов с тремя директориями в своем корне:

blockquote>
  • src содержит исходные файлы Go, организованные в пакеты (один пакет для каталога),
  • pkg содержит объекты пакета, а
  • bin содержит исполняемые команды.

go tool создает исходные пакеты и устанавливает полученные двоичные файлы в каталоги pkg и bin.

Подкаталог src обычно содержит несколько репозиториев управления версиями (например, для Git или Mercurial), которые отслеживают разработку одного или нескольких исходных пакетов.

blockquote>
bin/
    streak                         # command executable
    todo                           # command executable
pkg/
    linux_amd64/
        code.google.com/p/goauth2/
            oauth.a                # package object
        github.com/nf/todo/
            task.a                 # package object
src/
    code.google.com/p/goauth2/
        .hg/                       # mercurial repository metadata
        oauth/
            oauth.go               # package source
            oauth_test.go          # test source

Обновление Июль 2014: см. « Структурирование приложений в Go » из Бен Джонсон

Это статья включает следующие советы:

Отделите свой бинарный файл от вашего приложения

, объединяющий файл main.go, и моя логика приложения в том же пакете имеет два следствия:

  • Это делает мое приложение непригодным для использования в качестве библиотеки.
  • [g1 2] У меня может быть только одно бинарное приложение.

Лучший способ найти это - просто использовать в моем проекте каталог «cmd», где каждый из его подкаталогов

blockquote>
camlistore/
  cmd/
    camget/
      main.go
    cammount/
      main.go
    camput/
      main.go
    camtool/
      main.go

Разработка с использованием библиотеки

Перенос файла main.go из вашего корня позволяет вам создавать приложение из перспектива библиотеки. Бинарный файл приложения - это просто клиент библиотеки вашего приложения.

Иногда вам может потребоваться, чтобы пользователи взаимодействовали несколькими способами, поэтому вы создаете несколько двоичных файлов. Например, если у вас есть пакет «adder», который позволяет пользователям добавлять номера вместе, вы можете захотеть выпустить версию командной строки, а также веб-версию. Вы можете легко сделать это, организовав свой проект следующим образом:

blockquote>
adder/
  adder.go
  cmd/
    adder/
      main.go
    adder-server/
      main.go

Пользователи могут установить бинарные файлы приложений «сумматора» с помощью «go get» с помощью многоточия:

blockquote>
$ go get github.com/benbjohnson/adder/...

И у вас есть у пользователя «adder» и «adder-server»

blockquote>

Не сходите с ума subpackages

Обычно типы моего проекта очень взаимосвязаны, поэтому он лучше подходит для удобства использования и API. Эти типы также могут использовать вызовы, не поддерживаемые между ними, что делает API небольшим и понятным.

  1. Связанные с группой типы и код вместе в каждом файле. Если ваши типы и функции хорошо организованы, я обнаружил, что файлы, как правило, составляют от 200 до 500 SLOC. Это может показаться много, но мне легко ориентироваться. 1000 SLOC обычно является моим верхним пределом для одного файла.
  2. Упорядочить наиболее важный тип в верхней части файла и добавить типы в уменьшающемся значении в нижней части файла.
  3. blockquote>

    Примечание: эта последняя практика не всегда хороша:

    ]

    Извините, я просто не могу согласиться с этой практикой. Разделение типа на файлы помогает управлять кодом, читабельности, материнствам, тестируемости. Это может также обеспечить единую ответственность и следовать принципу открытого / закрытого ... Правило не допускать круговой зависимости состоит в том, чтобы заставить нас иметь четкую структуру пакетов.

    blockquote>

    (Альтернатива Февраль 2013 г., только в отношении src). Вы можете найти классический макет, представленный в « макета кода GitHub »:

    Приложение и обе библиотеки живут на Github, каждый в своем собственном репозитории. $GOPATH - это корень проекта - каждый из ваших репозиториев Github будет проверен несколькими папками ниже $GOPATH.

    Схема вашего кода будет выглядеть так:

    blockquote>
    $GOPATH/
        src/
            github.com/
                jmcvetta/
                    useless/
                        .git/
                        useless.go
                        useless_test.go
                        README.md
                    uselessd/
                        .git/
                        uselessd.go
                        uselessd_test.go
                        README.md
    

    Каждая папка в папке src/github.com/jmcvetta/ является корнем отдельного git checkout.

    blockquote>

    Это привлекло некоторые критические замечания, хотя на этой странице reddit :

    Я настоятельно рекомендую не структурировать репо, как вы , он сломается «go get», что является одной из самых полезных вещей о Go. Гораздо лучше написать свой код для людей, которые знают Go, поскольку они, скорее всего, будут их компиляцией. И для людей, которые этого не делают, они, по крайней мере, почувствуют язык.

    Поместите основной пакет в корень репо. У вас есть активы в подкаталоге (чтобы все было аккуратно). Храните мясо кода в субпакете (в случае, если кто-то захочет повторно использовать его вне вашего двоичного файла). Включите скрипт установки в корень репо, чтобы его было легко найти.

    Это все еще только двухэтапный процесс для загрузки, сборки, установки и настройки .:

    • "go get ": загружает и устанавливает код go, с поддиретом для активов
    • $GOPATH//setup.sh: распределяет активы в нужном месте и устанавливает службу
    BLOCKQUOTE>

13
задан Will 25 June 2014 в 20:48
поделиться

13 ответов

Я использую все это время на терминалах Unix. Довольно удобно, когда что-то привлекает мое внимание, когда я выслеживаю файл журнала.

11
ответ дан Rontologist 25 June 2014 в 20:48
поделиться
  • 1
    That' s странный. Я didn' t видят @RahulG' s отвечают, когда я отправил это. – user142435 26 April 2010 в 14:52

В Excel, если Вы включаете блокировку прокрутки, с помощью клавиш со стрелками, прокручивает электронную таблицу вместо того, чтобы изменить ячейку, в которой находится курсор.

27
ответ дан Adam Rosenfield 25 June 2014 в 20:48
поделиться

Во многих ситуациях KVM дважды совершающая нападки блокировка прокрутки с поднимает экран выбора машины.

11
ответ дан Instantsoup 25 June 2014 в 20:48
поделиться

В Microsoft Excel Scroll Lock позволяет Вам прокручивать электронную таблицу с клавишами со стрелками, не перемещая указатель активной ячейки от в настоящее время выделенной ячейки. В Quattro Pro, другой программе электронной таблицы, Scroll Lock работает подобным образом, хотя в отличие от Excel не возможно прокрутить указатель активной ячейки полностью от экрана.

Другие программы используют Scroll Lock для специальных функций.

3
ответ дан Mostlyharmless 25 June 2014 в 20:48
поделиться
  • 1
    @Pim Jager: Вы shouldn' t использовать для... в для массивов так или иначе - that' s предназначенный для объектов. Который является, почему реальный нет - нет расширяет Object.prototype... – Shog9♦ 12 August 2009 в 16:52

Блокировка прокрутки (по крайней мере, светодиод для него, так или иначе) используется наряду с Caps Lock и светодиод Num Lock для обеспечения кодов ошибки диагностики при поиске и устранении неисправностей аппаратных проблем на ноутбуках Dell. Это довольно полезно при поиске и устранении неисправностей проблем с дисплеем, которые могли бы препятствовать тому, чтобы сообщения диагностики были прочитаны от экрана.

3
ответ дан J c 25 June 2014 в 20:48
поделиться
  • 1
    Можно расшириться если поддержка версии JavaScript Object.defineProperty. There' s опция enumerable:false – dresende 10 November 2011 в 15:50

Если у Вас, оказывается, есть некоторые игры MS-DOS прежней версии вокруг, это могло бы быть полезно;-)

1
ответ дан Eran Galperin 25 June 2014 в 20:48
поделиться
  • 1
    Можно объявить тип на перечислении " общедоступный перечислимый ReturnValue: int" который осуществляет это, значения имеют интервал типа. Это все еще doesn' t обеспечивают неявный кастинг. Редактирование для показа, когда это хорошая идея использовать значения в перечислении. – Michael Meadows 23 February 2009 в 19:44

Microsoft Excel использует Scroll Lock, чтобы позволить Вам прокручивать электронную таблицу вокруг с клавишами со стрелками, не изменяя активную / выбранную ячейку - в соответствии с клавишей Scroll Lock исходное намерение .

5
ответ дан Jon Schneider 25 June 2014 в 20:48
поделиться
  • 1
    Можно в значительной степени расширить что-либо кроме объекта Массива. It' s Массив возражают где, расширяясь get' s раздражающий, потому что Вы тогда can' t делают простое для.. в цикле (да я знаю, можно использовать для (), но это просто выглядит настолько ужасным. – Pim Jager 7 March 2009 в 21:03

Это выглядит главным образом мертвым: http://en.wikipedia.org/wiki/Scroll_lock

я не помню прошлый раз, когда я использовал его...

2
ответ дан Chris 25 June 2014 в 20:48
поделиться
  • 1
    Работы как очарование, Спасибо! Странное, что можно определить перечисление: " общедоступный перечислимый MyEnum: интервал {...} " и не имеют его значения, неявно castable. There' s никакое понятие " универсальный enum" есть ли? - общественность enum< int> MyEnum - или действительно ли это абсолютно смешно? – Mark Carpenter 23 February 2009 в 16:02

Один из плагинов визуализации для Winamp (Медиаплеер) использует блокировку прокрутки, чтобы препятствовать тому, чтобы визуализация повернула визуализацию каждый x секунды

1
ответ дан epochwolf 25 June 2014 в 20:48
поделиться
  • 1
    Одно незначительное предложение - использование static readonly int, а не const, в случае, если Ваши значения изменяется в будущих версиях. Вы don' t хотят, чтобы вызывающие стороны скомпилировали то значение в их код. – Chris S 21 December 2011 в 14:57

Так как это подключено к светодиоду, некоторые умные люди добавили код, чтобы заставить его высветиться (например, блокировка прокрутки на/от/на/от) в данном интервале как уведомление для новых электронных писем (или подобный)

, Это может быть "прохладно", если у Вас есть ноутбук, который закрывается (или экран спит)..., Вы просто видите, мигает ли свет.

0
ответ дан scunliffe 25 June 2014 в 20:48
поделиться

Ну, это - еще один ключ, который будет использоваться с AutoHotkey... (или другие менеджеры по сочетанию клавиш).

0
ответ дан PhiLho 25 June 2014 в 20:48
поделиться
  • 1
    Два upvotes? Я нахожу этот ответ неполезным в этом, он отвечает на вопрос, который был записан, но не очевидный вопрос, который задавали. Что, если Вы определяете enum MyEnum : int {}?; тогда это не имеет к, но эффективно использует интервал в качестве лежащий в основе типа; и нет все еще никакого неявного кастинга. sadpanda: ( – ANeves 22 June 2011 в 10:20

В Совместные действия можно заблокировать мышь на текущий экран. Очень полезный, когда Вы хотите совместно использовать мышь с ПК с другой стороны комнаты.

1
ответ дан mwore 25 June 2014 в 20:48
поделиться

Я использую его постоянно, с той целью, для которой он был создан. Для самых разных вещей.

-5
ответ дан 1 December 2019 в 17:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: