百科问答小站 logo
百科问答小站 font logo



lua这种的违反直觉的用法怎么理解? 第1页

  

user avatar   haozhi-yang-41 网友的相关建议: 
      

这就是“解释执行”和“编译执行”的根本区别啊。

因为C/C++有编译和链接这个过程,所以在编译时能知道每行代码具体调用了些什么函数,在链接时能知道这些函数的具体入口在哪里。所以如果编译时发现调用了一个没有声明的函数,或者链接时找不到具体函数的入口,那就直接报错了。

但是解释执行不一样,它是按语句执行的。所有的变量、函数,都是在执行的那一刻才由解释器去根据名字寻找对应的具体入口和实现的。很多解释执行的语言,还能在运行时动态改变对象,或者运行时增加对象或者方法等,也是同样的道理。


从另一个角度来说,编译型语言,它的编译链接过程,相当于强制开了一个全局视角,所以它知道“一开始没有的func1”。然而,解释型语言,是没有这个全局视角的,所以它在扫描tab1.lua的时候,根本就不可能知道“一开始没有的func1”。甚至理论上完全有可能在扫描tab1.lua时还有这个func1,而到了执行runtest的时候,这个func1入口就被删了,于是只能报错。(就算语言层面不支持删,也可以通过hack解释器的方法去删)


user avatar   topgao 网友的相关建议: 
      

不需要,我已经几乎两年没用过有线充电了。

把常用场合都部署好无线充电以后,真的不用操心换手机换充电器之类的事情。

其实很简单的一个问题:取消耳机口之后,各位是改用L口耳机C口耳机,还是改用无线耳机?我曾经以为会普及L口或者C口耳机,然而现实就是无线耳机开始普及。

无线充电座普及之后,由于它没有插拔,所以她的寿命其实远比手机要长。

--

所以,如果你没有无线充,强烈建议你尝试无线充。




  

相关话题

  小白问一下,比较厉害的编程代码,到底厉害在什么地方?是用最少的语言表达出意思,然后不会出现矛盾? 
  低代码开发以后有前景么?会不会最后一地鸡毛? 
  程序员想开一个编程公司需要怎么做? 
  为什么经常听人说编译器比你聪明? 
  如何看待“Python星人”这个群体? 
  怎么看待 Libra 使用 Rust 编写? 
  为什么那些会多国语言的人常常被赞赏,貌似没什么人因为精通各种编程语言而赞赏程序猿? 
  在业务需求完全一致,技术指标要求不一致时,是否应该为此提供使用不同优化算法的接口? 
  为什么总有一些人推荐计算机学生把重点放在高数和线代? 
  如何评价单片机大神郭天祥? 

前一个讨论
如何看待允许隐瞒艾滋病等严重疾病,进行骗婚,生命权和私隐权到底哪个重要?
下一个讨论
为什么编程语言对异步编程都是很晚近才开始支持的?





© 2025-03-27 - tinynew.org. All Rights Reserved.
© 2025-03-27 - tinynew.org. 保留所有权利