comment 0

斜线和空值

前言:

在做设计时,经常会遇到一些字段没有数据的情况,那么对于这些“空值”的字段,我们应当如何处理?

 

先从一张图说起:

8b6d60817098a0d8bfc992b8ac41ba071467771084

 

(图片来自搜索引擎)

这是日常生活中常见的一张合同页面,在不需要填写地方,人们通常会在那里划一个斜线“/”,用来表示“此处划掉”“无需填写”“没有内容”等等类似的含义。

那么在计算机界面中,是否可以使用斜线“/”表示“没有内容”呢?

不可以。

在计算机世界里,斜线会分为两种:斜线“\”和反斜线“/”,他们分别有各自的用法和含义。

斜线“/”

斜线的使用,非常常见,在各种场合里都会见到。

  • 英语中,用斜线 “/”  代替连字符“-” “~” 或连接号“—”以强烈表达词句的连接,如,日期表达:  mm/dd/yyyy
  • 斜线也用来表示 “or”  ,如 male/female
  • 斜线也被当做分行、分段,但多用于诗歌、戏剧、散文
  • 在数学上,用“/” 表示除法、分数,如,1/3
  • 在UNIX里,斜线“/”表示文件路径、目录,单独的斜线 “/” 在unix里表示“根目录”,如: pictures/image.jpg,
  • web里,遵从unix的用法,斜线“/”表示文件路径、目录,如:https://www.qcloud.com
  •  C语言、C++和C#里表示代码的注释,以/*开始,以*/结束,PHP、JAVA里也用双斜线“//”表示注释

反斜线“\”

反斜线的来历比较“奇特”,在最开始,它是由 鲍勃·比默于1961年在IBM工作时首先引入ASCII码的。在ALGOL中,他使用“/\”和“\/”这种斜线加上反斜线的形式,用来分别表示“∧”和“∨”这两个布尔运算符。这是一个非常有创意的做法。

如今,我们最容易见到反斜线“\”地方是在Windows里。和Unix、Linux、MacOS不同,在Windows中,使用反斜线“\”表示文件路径、目录,如:C:\Windows

Windows之所以这么用,是因为DOS的缘故,Windows为了兼容DOS时代的习惯,依然保留了反斜线。

虽然现在Windows的已经能够识别路径中的斜线“/”了,比如,在Windows里访问 C:/Windows 和访问 C:\Windows  的效果是一样的,但Windows里仍然习惯使用反斜线表示路径。

在DOS里,反斜线“\” 表示文件路径、目录,斜线“/”后面跟参数,表示是参数,如:c:\>dir /d

这是因为,DOS 1.0时,它并不支持树形目录的文件管理,最开始先使用了斜线“/”表示参数,如c:\>dir /d

cmd

 

到了DOS 2.0时,它才引入了目录结构,但这时斜线的使用已经被占用了,所以就只能使用反斜线“/”,虽然一开始多遭大家诟病,但随着Windows的强势普及,大家也逐渐接受了这种设定。

另外,在一些编程语言里,如C、PHP、Unix脚本, 反斜线会用来表示紧随其后的字符应被特殊处理,也即“转义符”,如 \n 表示“换行”。

跑题略远,我们在回到问题上:如果斜线不适合在界面里表示“没有内容”,那么对于空值的情况该如何表达?

我们可以继续看看现有的一些行业做法:

1,在大多数计算机语言里, 有且仅有一个表示”无”的值,比如,C语言的NULL,Java语言的null,Python语言的None,Ruby语言的nil。

NULL
(图片来源见水印)

 

2,在我们常用的Excel中,以及数据库软件Access里,通常会用“N/A”表示“不可用”的值,它是 Not Available的缩写

NA

 

同时,在表格软件里,也经常会使用空白的单元格表示此处没有数值

blank

 

3,在Basic语言里,会使用相邻的双引号、单引号、双反斜线表示空字符串。如:

blank2

在Web内容设计时,我们应当如何表达“空值”的信息呢?

可以看一个例子:

Capture
(图片来自qcloud截图)

例如,在云主机的表格里,基础网络的主机没有“所在子网”的信息,使用了短横线“-”表示,在详情页里,一样使用了短横线表示。

在表格里,为了避免空白单元格的出现,使用短横线“-”来占位或许比较常见,因为出现空白单元格会让人有疑惑:这个地方的数据是不是没有加载出来?

但短横线在视觉显示上有些弱,容易注意不到,所以有些人也会使用双短横线“- -”来代替短横线,如:

baidu

(图片来自网络)

所以,使用短横线在表格里对没有数据的单元格进行占位,这种方式或许还好理解,但在表单展示里,依然使用短横线“-”来表示“没有数据”,就显得有些奇怪:这不是一个常用的表达方式,这会让你思考一下:这个短横线是什么意思?哦,应该是“没有”的意思。

Capture2

在英文的语境里,不管是“Null”还是“N/A”,它们都是含义明确的信息,但这种表达方式直接搬到中文环境里似乎并不那么合适,没有程序开发背景的人基本上是不知道“Null”、“N/A”是什么意思,你甚至会以为,这个地方是不是出错了。

对于中文语境,为什么不把“空值”的信息直接用文字表达出来呢?仍然以云主机的例子,我们做一个简化方案对比着看一看:

现有方案使用短横线“-”

 

列表页:

11

详情页:

12

使用“(无)”并弱化显示

 

列表页:

21

详情页:

22

使用“Null”

 

列表页

31

详情页:

32

嗯,似乎可行。

 

<完>


参考资料:

1,斜线wiki

2,反斜线wiki

3,《undefined与null的区别》,作者:阮一峰

4,《空Basic字符串和空值》IBM Knowledge Center

 

 

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注