[英]Direct use of 1/0 in V8 engine
我首先认为它是python,因为该文件名为macros.py。 但是有人说不是。
v8引擎的这一部分在另一个讨论的中间。
# Constants. The compiler constant folds them.
define INFINITY = (1/0);
我还没有用其他语言看到过这样的东西。 这种语言(py?/ js?)允许这种表达的机制是什么?
该行是无效的Python语法。 Python语言没有const
类型的概念,也没有macro
语法。
该文件上的.py
扩展名容易引起误解; 只有一行可能包含也可能不包含实际的Python语法:
# Macros implemented in Python.
python macro CHAR_CODE(str) = ord(str[1]);
该文件实际上是由Python脚本解析的,因此充其量是一种自定义域特定的语言。 根据顶部的注释判断,未使用python macro
标记为Python代码的python macro
似乎用于将JavaScript代码转换为字符数组:
# This is a utility for converting JavaScript source code into C-style
# char arrays. It is used for embedded JavaScript code in the V8
# library.
在JavaScript代码中, (1/0)
产生浮点无穷大:
> (1/0)
Infinity
而在Python代码中,这引发了一个异常:
>>> 1/0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: integer division or modulo by zero
但是您并不需要这些技巧,因为如果您确实需要引用无穷大,则可以只使用float('inf')
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.