Python 超级容易学习和理解;我喜欢它,因为它使用了关键字、缺乏复杂的语法(与 perl 相反,据我所知)以及易于使用的数据结构。但是,我无法忍受缺少变量声明,因为它无法明确告诉 Python 您希望变量具有什么作用域。是否有任何语言具有我喜欢 Python 的所有品质以及变量声明,也许还有一组不错的库可用?
谢谢。
Python 超级容易学习和理解;我喜欢它,因为它使用了关键字、缺乏复杂的语法(与 perl 相反,据我所知)以及易于使用的数据结构。但是,我无法忍受缺少变量声明,因为它无法明确告诉 Python 您希望变量具有什么作用域。是否有任何语言具有我喜欢 Python 的所有品质以及变量声明,也许还有一组不错的库可用?
谢谢。
您可以尝试使用带有变量声明的 Python:
>>> x = 0 # a global variable
>>> def fact(n): #n is a parameter
... x = 0 # local variable declaration
... z = 1 # declaration and initialization
... for i in range(1, n + 1): # a loop variable is defined inline
... z = z * i
... return z
...
>>> x = 5 # the global x
>>> fact(x)
120
你能解释一下这有什么问题吗?此外,正如尼克巴斯汀在评论中所说,如果您解释您的问题是与声明还是范围有关,这将有所帮助。
如果您的问题与语法或静态类型有关,您可以接受下一个语法吗?
def f(double x):
return x**2-x
def integrate_f(double a, double b, int N):
cdef int i
cdef double s, dx
s = 0
dx = (b-a)/N
for i in range(N):
s += f(a+i*dx)
return s * dx
C#
下面是一些代码示例。
您还可以查看 Perl 6,它消除了您在 Perl 5 中描述的问题,但保留了优点,甚至可以选择强类型变量。问题是它还没有完成,没有人知道它什么时候会......
无论哪种方式,如果您有兴趣,都可以查看dev.perl.org。
Cython很像 Python,但具有类似于 C 的变量声明(实际上,Cython 允许 C 中存在的很多东西)。
嘘呢。CLR,非常类似于 Python。具有类型推断的静态类型。
如果您不是在谈论生产代码,请尝试 Google 的Go 。语言才一年多。它也很容易学习。这个建议只是因为你要求任何语言。
否则,Wim Coenen 的答案应该对您有用。