Яка ідіоматична назва змінної змінної? [зачинено]


11

Директива про встановлення мови шаблонів швидкості вимагає змінної в лівій частині. Це не працює.

#set ( $entries.add("d") )

Незважаючи на те, що я не маю користі для повернення значення add("d"), я повинен призначити його змінної.

#set ( $x = $entries.add("d") ) 

Я хочу повідомити, що змінна необхідна, але я не маю наміру її використовувати пізніше. Чи існує умова для іменування змінних, які існують лише для заспокоєння компілятора?


2
як щодо просто використання коментаря
Gratzy

foo? [15 символів]
Конрад Моравський

6
Я б назвав це кодовим запахом.
Джоель Етертон

Привіт Патріку, питання щодо іменних змінних тут є поза темою: для отримання додаткової інформації ознайомтеся з питаннями "Назвіть цю річ" на тему?

1
@ Марк Гаразд, дякую. FWIW, я думаю, що це питання більше схиляється до "належного терміна для поняття", ніж до "іменування пропозицій для класу чи методу". Я шукаю ідіоматичне ім'я, яке використовувалося б у різних мовах та базах кодів, а не конкретне ім'я для однієї змінної.
Патрік МакЕлхані

Відповіді:


26

Я схильний використовувати dummyдля подібної ситуації (змінну, яку я повинен мати, хоча мені не потрібно використовувати).


Я завжди використовую ігноровані. Я би додав власну відповідь, але не міг придумати нічого іншого, щоб сказати про це.
Джон Бюкенан

2
Окрім манекена, я також використовую _ (деякі мови приймають це), dump, сміття, bhole (з чорної діри), непотрібні та деякі інші назви, яких я зараз не пригадую.
PEdroArthur

+1, оскільки після багато пошуків я виявив, що за замовчуванням pylint ігнорує невикористовувану змінну з назвою "_" або "манекен". logilab.org/card/pylintfeatures#id9
Patrick McElhaney

І під час пошуку чогось іншого, знайшов згадку про $ манекен спеціально у Velocity .
Патрік МакЕлхані

16

Ви повинні перевірити, чи є у вашої мови ім'я спеціально для цього використання - Python має _те, що ви повинні використовувати для змінних, які ви збираєтесь викинути.


10
Зауважте, що _це традиційна назва цього типу змінної у мовах, які забезпечують відповідність шаблонів (ML, Haskell, scala тощо)
barjak

@barjak Добре знати - я ніколи не використовував жодної з цих мов, я думав, що це річ з Python
Izkata

12

манекен , темп , сміття , чорна криниця , сміття ... будь-який із них говорить мені, що я не буду їх використовувати ні для чого.

Якщо я використовую якщо для чогось, я завжди перейменую змінну.


1
+1, щоб перейменувати його, якщо ви його використовуватимете пізніше.
Спенсер Ратбун

Дякую, але це не відповідає на питання. Я можу придумати безліч імен, які говорять "це не важливо". Я шукаю єдине, стандартне ім’я.
Патрік МакЕлхані

За винятком кількох нових мов, більшість з них не мають такої. Такого стандарту не існує, якщо ви не вважаєте ті, що набрали найбільше голосів тут, "стандартними".
Грач

3

У вас вже є багато хороших відповідей, проте я подумав, що я б кинув той, який більше стосується швидкості.

Що повертає метод додавання? Якщо він недійсний, ви можете просто сказати швидкість, щоб тихо посилатися на нього:

$!entries.add("d")

Однак якщо ви замінюєте значення, і воно повертає старе значення (як Map.put робить), тоді вам потрібно буде встановити його манекенну змінну якогось типу, якщо це недійсний метод, то вам не потрібно змінна взагалі.

Якщо ви не налаштовані на використання нової змінної, ви можете зробити наступне:

#if($entries.add("d")) #end

Якщо ви використовуєте його досить часто, я створив би для нього макрос, а потім використовувати його у всіх шаблонах. Я не бачу, наскільки це може бути корисним, але принаймні вам потрібно буде коментувати це лише один раз ...


Блискуче! Метод повертається trueв цьому випадку ($ entries - це ArrayList), але людина, я б хотів, щоб це спрацювало.
Патрік МакЕлхані

Я боявся, що ви насправді посилаєтесь на список. Я відредагував відповідь, щоб позначити спосіб, яким ви могли б не скористатись фіксованою змінною, але я не дуже впевнений, чи використовував би я її ...
Скотт

2

Я б назвав це обґрунтованою назвою і додав коментар, в якому пояснюється, що ви лише призначаєте його заспокоїти компілятор. Я бачив випадки, коли хтось використовував ім'я змінної типу, unusedа інший розробник згодом використовував цю змінну під цим іменем і робив неприємний безлад коду.


Мені подобається і невикористане . Єдина проблема, яка в мене є, це те, що я використовую його в той момент, коли я це пишу: /
Rook
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.