Language agnostic 是否存在静态数据类型为可选的编程语言?
我在想以下两个是等价的:Language agnostic 是否存在静态数据类型为可选的编程语言?,language-agnostic,programming-languages,Language Agnostic,Programming Languages,我在想以下两个是等价的: int [] array = { 1,2,3,4 } foreach( int i in array ) { print i } array = { 1,2,3,4 } foreach( i in array ) { print i } C#允许您在声明中使用关键字,从赋值的右侧推断类型。是的,使用C的语言是这样工作的。代码是静态类型的,但是编译器可以发现,如果您编写{1,2,3,4},那么您分配给它或用它调用的任何东西都是int
int [] array = { 1,2,3,4 }
foreach( int i in array ) {
print i
}
array = { 1,2,3,4 }
foreach( i in array ) {
print i
}
C#允许您在声明中使用关键字,从赋值的右侧推断类型。是的,使用C的语言是这样工作的。代码是静态类型的,但是编译器可以发现,如果您编写
{1,2,3,4}
,那么您分配给它或用它调用的任何东西都是int[]
类型。它节省了大量的(手指)输入。您可以在C++0x中完成,尽管该类型不会是数组
:
auto numbers = {1, 2, 3, 4}; // initializer list
for(int i : numbers)
{
cout << i;
}
自动编号={1,2,3,4};//初始化列表
用于(int i:数字)
{
cout在一些基本口味中,常数的类型由其值确定
CONST X = 1 ''integer
CONST PI = 3.14 ''float
CONST S = "Hello World" ''string
python的工作方式与此类似。中只有一种数字类型
array = { 1,2,3,4 }
for i,v in ipairs(array) do
print(v)
end
数组={1,2,3,4}
对于ipairs(数组)do中的i,v
印刷品(五)
结束
即使在Powerbuilder(PB.NET)中也能工作:
您也可以使用。也可以对各种内置数据类型执行此操作。C#3.0也有此功能。例如:
var s = "hello world";
编译如下所示:
string s = "hello world";
也适用于其他数据类型,仅举一个例子
顺便说一句,类型推断和松散类型语言之间存在差异。使用类型推断时,仍然存在强类型,因此一旦通过初始化建立了类型,就无法更改该类型,并且其性能与显式指定类型时一样好。但是,松散类型语言(如VBA中的“Variant”类型),允许在运行时将同一变量设置为不同类型的值。F#、CAML/OCAML、Haskell和Boo的类型推断通常与您所描述的行为类似。函数式语言的类型推断往往比这个示例更强大。类型推断……这就是我要寻找的(我想):)在什么意义上你声称“Python的工作方式与此类似?”x=int(42)x=42在Python中是等效的
string s = "hello world";