Por exemplo, você permite que o usuário defina a variável do caminho notório. Como você interpreta apppath = C:\Program Files\App
?
Parece uma prática adotada pela linguagem de programação para ignorar os espaços em branco e você os deixa em torno da marca de igualdade para facilitar a leitura, mas pode ser um valor de variável válido com espaço em branco no aplicativo (considere, é um sufixo).
Até as chaves podem conter espaços em branco, não podem?
Qual é a melhor prática geral para meu aplicativo? Se eu tiver:
key-example = value-example
devo interpretar a chave sendo "key-example"
ou "key-example "
e o valor como sendo "value-example"
ou " value-example"
?
:
no lugar=
porque eu uso isso exclusivamente em javascript (embora minha pergunta não se limite ao meu aplicativo, portanto, é irrelevante perguntar sobre o idioma), mas isso não me ajudou a ler a configuração como objeto JSON . JSON requer todos os valores citados, o que é uma carga desnecessária para o usuário.Respostas:
Como usuário , não espero que o espaço em branco nos dois lados do sinal de igual altere o valor da chave ou do valor. Veja também esta questão relacionada no unix.SE , como a situação pode ser confusa.
Não dificulte os usuários, apare os espaços em branco da chave e do valor. Se os espaços em branco à esquerda tiverem um caso de uso real para ambos, deixe o usuário agrupar a chave ou o valor entre aspas.
fonte
Cabe a você definir as regras para seu aplicativo.
Por exemplo, você pode definir que:
Espaço em branco antes ou depois do sinal de igualdade ser ignorado,
O espaço em branco dentro da chave é proibido,
O espaço em branco dentro do valor pode ser usado apenas se o valor estiver entre aspas, portanto:
é proibido, enquanto:
é permitido, o que também possibilita ter prefixos de espaço em branco:
Definir um formato pode ser uma tarefa complexa. Por exemplo:
Como você escapa citações?
Como você escapa do caractere de escape usado para escapar de aspas?
Como você lida com valores vazios?
Qual é o comprimento máximo de uma chave? Que tal um valor?
Como você lida com valores de múltiplas linhas?
E os caracteres Unicode de espaço em branco que não sejam um espaço (como um caractere de espaço sem quebra)?
E os caracteres Unicode que geralmente não são exibidos na tela ? Por exemplo, como você lida com as categorias Unicode Cf ou Zl?
Quais são os caracteres permitidos na chave? Por exemplo, é:
uma chave válida?
A linha a seguir deve funcionar? ¹
Dica: o sinal de igualdade não é um sinal de igualdade, mas o caractere 0xa60c (prolongador de sílaba Vai). Embora poucas pessoas usem esse símbolo em vez da igualdade, o caso mais frequente é um copiar e colar do Microsoft Word (observe atentamente as aspas):
etc.
É por isso que, a menos que você tenha certeza absoluta de que pode definir um formato e descrevê-lo de maneira precisa e detalhada, use um formato que já exista .
JSON ou XML são formatos comumente usados que você pode usar em quase todas as linguagens de programação. Você pode até abstrair o formato subjacente usando um banco de dados. Redis , por exemplo, é uma solução popular para armazenamento de valores-chave.
Users Os usuários do Chrome que usam o Windows provavelmente verão um ponto de interrogação em um quadrado. Em outros navegadores ou no Chrome no Linux, o caractere aparece como um sinal de igualdade e pode ser facilmente enganador: a única diferença visual é que há uma pequena diferença no espaço entre as barras horizontais.
fonte
=
e as aspas não são o problema, embora não esteja claro os espaços em branco, porque eu prefiro tê-los e isso cria ambiguidade. Dizer que os espaços em branco iniciais / finais são aparados é suficiente. Obrigado.