codenameone - Codename One 类的 Objective-C 编码风格
问题描述
只是理论上的好奇:为什么 Codename One 类的 Objective-C 端口充满了goto
语句和标签,例如Label_l12343253
,这使得它几乎不可能被阅读?它看起来更像是一种汇编语言,而不是一种高级编程语言。
它是故意混淆代码还是 Java 字节码转换的无意结果?
解决方案
这是由于字节码转换。字节码包含 goto 语句,以便更好地适应它。请注意,我们的端口不包括它,这仅在 parpar VM 的输出中,而不是手动编码的端口代码。
理论上,我们可以使用类似于反编译器的启发式方法来生成更好看的代码,但这可能不适用于 C,因此我们尝试尽可能接近字节码。
推荐阅读
- azure - 如何使用 CLI 2.x 添加 preAuthorizedApplications
- php - 当我的网址在邮件正文中时,PHP MAIL 不发送电子邮件
- css - 使 ::before 选择器内容中的图像拉伸到屏幕
- c# - 在 C# 8 中,为什么对新表达式的类型推断会导致可空引用?
- javascript - 使用 Node.js 从 Json 文件中解析嵌套对象
- python - 如何根据文件名将一个文件夹中的多个文件分成不同的文件夹?
- apache-spark - Spark:无法构建大于 8G 的 HashedRelation
- gitlab - 如何在提交后/合并请求管道中引用由预提交管道生成的工件
- javascript - 将字符串(作为快捷方式)转换为 Javascript 中的字节
- java - 如何转换 JSON