0%

先来个背景音乐。

简介

想必读者对编程中的「变量」、「实例(对象)」不会陌生。

变量和实例对应的,是一些有意义的数据。这些数据,在不同编程语言中,可能有不一样的表现;在不同操作系统中,也可能有不一样的形式。现代计算机应用,不可避免地会涉及到多个模块/程序之间的数据交换、不同语言之间的相互协作、计算机之间的数据交互。如果依着操作系统和编程语言的特性,用不同的形式去实现同样的数据,那整个计算机世界就会乱了套了。

数据的序列化和反序列化,就是为了解决这个问题而诞生的。

序列化是说,将变量和实例这些数据,依照某种约定,转化(通常伴随着压缩)为一种通用的数据格式;转化后的数据,可以用来储存或者传输,以备下次读取使用。其中提到的格式可以是二进制的,也可以是字符串式的。反序列化,就是上述过程的补集:将序列化的数据读入,解析为编程语言可识别的数据结构的过程。

阅读全文 »

现有的 cases 环境,只支持:

  • 左侧的花括号
  • 一个对齐符号 &

如果在 cases 环境里需要多个对齐符号 &,或者希望在它左右有不同风格的括号,就要动一番脑筋了。

阅读全文 »

今天接触到了一个挺有意思的概念:牛津逗号。

所谓牛津逗号(Oxford Comma),当然和牛津大学有点关系。牛津逗号,指的是用英文枚举一些示例的时候,紧跟在并列连词(通常是 and 和 or)之前的那个逗号。举个栗子:

Mary likes apple, banana, and strawberry.

这个例子里面,and 之前的逗号,就是所谓的牛津逗号。叫它牛津逗号,是因为牛津大学出版社要求作者必须在枚举的并列连词之前加上一个逗号。不过,由于哈佛大学出版社也有这么一个要求,所以这种逗号也可以称为哈佛逗号(Harvard Comma)。当然,你也可以根据它所处的环境,把它叫做 Serial Comma。

阅读全文 »