Обсуждение модуля:Yesno

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Добавить «x» в качестве true[править код]

Просьба добавить «x» (можно назвать это «крестиком»), то есть строки

		or val == 'x'
		or val == 'х'

(латинская буква и кириллическая, а то могут перепутать) в качестве true. На практике это единственное семантически корректное значение, совместимое с устоявшейся практикой, когда значение true передаётся как непустое значение переменной. То есть мы обычно, чтобы передать значение true, передаём единицу, например nocat=1. Проблема в том, что противоположность 1 — 0, но если мы передадим nocat=0, это тоже будет интерпретироваться как true. При этом, естественно, никто не будет переносить все подобные шаблоны на использование модуля.

Данная семантическая коллизия разрешается использованием значения «крестик», то бишь «x», смысловая противоположность которого — отсутствие крестика, или пустое значение. Скажем, я так делаю в своих шаблонах, но если я перенесу их на базу этого модуля, они перестанут правильно работать. Такие дела. — Джек, который построил дом 14:52, 14 февраля 2016 (UTC)[ответить]