干嘛非要把名称搞得那么特殊,有那么香吗? | PQ实战躲坑
- 1 -
对于很多没有编程经验的朋友来说,碰到代码出错,估计心里都会比较方,尤其是,出错的提示,往往可能并不是真正的问题所在。
这也不能怪这些软件(工具)不够智能,只是因为很多错误,从计算机的角度来说,它很难判断你到底是错在哪里,而只能从一些基本的语法等角度进行提示。
比如,最近群里这个问题:
首先,用空格分开的内容,全世界的计算机语言里都认为它们是各自独立的,你不能要求计算机能自动地将“Structure Table”看作一个整体,还能知道你原来有个东西命名为“Structure Table”,而不是一个“Structure”和一个“Table”,除非你给它一个特别的标注。
试想想,如果中间有空格的内容会被看作一个整体,那该用什么来体现一句里的不同词语?
所以,按照这个函数的参数规则,计算机认为,Structure是一项独立的内容,这个参数也就写完了,它的后面就应该跟着一个逗号,而后面却多跟了Table,所以在Table的下方打了标记,并且提示语法错误“这里要逗号”!
那怎么改呢?是不是加双引号括起来?
当然也还是不行的,为什么呢?再试想想,用双引号括起来的是什么?是一段话(文本内容),那计算机怎么会知道你这个代表的是一张表而不是“structure table”这两个单词呢?
那,这也不行,那也不行,该怎么办?
所以每一种计算机语言里都会找一个平时不太常用的字符,用来做“转义字符”。
比如pq里用井号(#),还有的可能用\,有的用~,总之就是告诉计算机,碰到这个字符的时候,后面的内容可能就不是原来的含义了。
- 2 -
接下来再看一个例子:字段名里带&。
其实,这里跟前面还是一样的问题,语法错误,&也是个特殊字符,但同样的问题,错误提示却不同:
为什么这也出错?试想想,&本身有连接两项内容(文本或列表)的作用,这里计算机怎么知道你不是想连接两项内容呢?
那怎么避免类似的错误呢?
其实,很简单:给字段、表等等各类变量起名字的时候,里面尽量不要用特殊字符,比如:空格、.、+、-、*、/、&、等等可以用来做间隔或进行运算的符号(尽管有些其实可以用,但都尽量不要用),理由?参考上面两个例子。
那,如果名称就是分多个单词组成的呢?怎么写比较好?两种方式,比如上面的“Structure Table”,可以写成:StructureTable(驼峰式)或Structure_Table(下划线,这是各种计算机语言里没有特殊用途而又特别适合用来做单词间分隔和连接的符号。)
- 3 -
有的朋友曾经在群里问,PQ里的各种错误提示都是啥意思啊?是否有类似帮助文件一样的对照表啊?
对不起,这个我目前还真没找到,而且似乎即使找到了,感觉也没太多用处。
一般来说,当对基础的内容熟练使用后,形成良好的M语言及函数的基本习惯,就能见招拆招了,而如果基础的内容不扎实,即使有字典查了估计也是一头雾水。
扎实的基础和良好的习惯,始终是解决问题、应对异常情况的根本。
【近期热门文章】