Xojo类型不匹配错误咨询:赋值语句引发的问题排查
解决Xojo中的Type Mismatch错误:重复赋值运算符导致的问题
嘿,你的判断完全没错——错误就是出在你标记的那一行!让我帮你把问题拆解清楚:
问题根源
在Option 1的循环代码里,你写了这么一行:
de.Value = de.Value = citylistDE(i) + EndOfLine
这里的问题出在连续使用的两个=运算符上。在Xojo里,=有两种作用:赋值和比较,但当你连续写两个=时,它会先处理右边的de.Value = citylistDE(i) + EndOfLine——这部分会被识别成比较操作,返回一个布尔值(True/False),然后你试图把这个布尔值赋值给需要字符串类型的de.Value,这就直接触发了那个"Expected String, but got Boolean"的类型不匹配报错。
修正后的代码
你只需要把这行改成和Option 2一致的字符串拼接逻辑就行:
de.Value = de.Value + citylistDE(i) + EndOfLine
这样就会把数组里的每个城市名称追加到de.Value的现有内容后面,逻辑和Option 2完全一致,也不会再出现类型错误。
额外小补充:两种数组写法的说明
顺便提一句,你用的两种数组初始化方式都是Xojo里的有效写法:
- Option 1是先声明固定长度数组,再逐个赋值,适合需要提前确定数组长度的场景
- Option 2用
array()函数直接初始化动态数组,写法更简洁,适合快速批量初始化数据
只要修正Option 1里的错误行,两段代码就能实现完全相同的功能啦。
内容的提问来源于stack exchange,提问作者Moirae
相关产品推荐
相关产品推荐

