JDE для Emacs для JDK 6.10

Если вы хотите просто передать значения массива в функцию, вы можете сделать это:

test_arr() {
  for i in "$@"; do
    echo $i
    printf '\n'
  done
:
}

arr=("lol 1" "lol 2" "lol 3")
test_arr "${arr[@]}"

"${arr[@]}" передаст все значения, правильно разграниченные функции, где мы можем получить к ним доступ через [ 113] (все аргументы).

!, о котором вы спрашивали, используется для косвенной ссылки. То есть "${!1}" - это не значение первого аргумента, а значение переменной, имя которой равно значению первого аргумента.


Я мог бы что-то пропустить, но, похоже, желание объединить косвенное обращение и получить доступ ко всем элементам массива с косвенными ссылками в одно и то же время потребовало бы слишком много от оболочки, так что я вызвал могучего eval (хорошая причина, чтобы начать быть осторожным), чтобы помочь нам немного. Я взломал это, что позволяет вам передавать имя массива в функцию, а затем получать доступ к его элементам на основе этого имени, как видно в первом аргументе функции, но это не красиво, и одного этого должно быть достаточно, чтобы разочаровывать Это. В качестве примера он создает локальную переменную / массив, предполагая, что для этого была какая-то причина.

test_arr() {
  local a
  eval a=(\"\$\{$1\[@\]\}\")
  for i in "${a[@]}"; do
          echo $i
  done
}

arr=("lol 1" "lol 2" "lol 3")
test_arr arr
6
задан songyuanyao 1 April 2014 в 06:31
поделиться

3 ответа

Я сделал следующие настройки для JDE:

'(jde-bug-debugger-host-address "127.0.0.1")
'(jde-bug-jre-home "/usr/lib/jvm/java-6-sun")
'(jde-compile-option-debug (quote ("all" (t nil nil))))
'(jde-debugger (quote ("jdb")))
'(jde-global-classpath (quote ("." "/usr/share/java/" "/usr/lib/jvm/java-6-sun/")))
'(jde-jdk-doc-url "/usr/share/doc/sun-java6-jdk/html/api/index.html")
'(jde-jdk-registry (quote (("1.5" . "/usr/lib/jvm/java-6-sun"))))
'(jde-regexp-jar-file "/usr/share/java/regexp.jar")
'(jde-sourcepath (quote (".")))

Таким образом, это компилирует без жалоб, хотя у меня есть jdk 1.6.0.07.

5
ответ дан 17 December 2019 в 02:35
поделиться

Да, я сделал это. Проблема состоит в том, когда я называю 'jde-компиляцию, сообщение 'JDE не распознает JDK6.0.10 JDK. Принять JDK 1.5 Javac?" появляется. Кроме того, не похоже, что конструкции Java6, такие как аннотации, были определены в правилах проверки или добавления отступа синтаксиса.

0
ответ дан 17 December 2019 в 02:35
поделиться

Можно установить пути в параметрах конфигурации путем "регистрации" использования версии JDK M-x customize-variable и выбор jde-jdk-registry. Сохраните то состояние, затем сделайте M-x customize-variable снова, настроить jde-jdk и выберите тот, который Вы хотите.

Это должно сделать это; в противном случае дайте нам немного более подробной информации.

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

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