Floppy β Studio
Floppy β Studio

我需要多使用变量

我在近期使用Free Pascal+Lazarus的项目中遇到了一些诡异的问题,最终解决方式是在我刚才一拍脑门、一敲键盘尝试之后找到的,最终得出结论——不要想方设法避免使用变量。

我的程序要在本地创建一个文件,然后发送一个HTTP请求,得到的响应是一个JSON,再从JSON中提取有用的信息放入文件中。

我在JSON解析的过程中不断遇到异常,起初以为是数据有问题,一遍一遍地检查数据也没有发现问题,然后怀疑是JSON库有问题,但拿类似的数据单独测试并不能复现这个异常,我陷入了三天的沉思。

https://www.iruanp.com/wp-content/uploads/2022/10/YBM4LTFI08WSIJ1VL09MM.png

我在HTTP请求后添加了一个ShowMessage,展示HTTP请求的响应内容,发现创建的文件的路径出现在了JSON内容的前面。

我一开始怀疑ShowMessage可能有点小小的问题,于是把相应内容保存在了一个变量中,然后打断点,调试,watch,发现这个变量的值是没有问题的。那有可能是ShowMessage的问题吗?这么简单的一个弹出信息框的过程,这都能出毛病的话那真别用Lazarus了,所以ShowMessage也不应该有问题。

https://www.iruanp.com/wp-content/uploads/2022/10/VBTB8YH5WVNITO85ZX.png

我尝试把这个变量塞进JSON解析函数中,发现这次没有报错。

因此得出结论,我也不知道事情的本质是什么,但是我知道了不能妄想着少写个var来给用户节约内存。

Lazarus中文Q群里有大佬指出这和字符串的终止符号有关系(尽管我不是很明白,但还是在这里记录一下,万一以后哪天我就悟出来了呢?)

发表回复

textsms
account_circle
email


Floppy β Studio

我需要多使用变量
我在近期使用Free Pascal+Lazarus的项目中遇到了一些诡异的问题,最终解决方式是在我刚才一拍脑门、一敲键盘尝试之后找到的,最终得出结论——不要想方设法避免使用变量。 我的程序要在…
扫描二维码继续阅读
2022-10-11