标签: dynamic-typing

返回动态类型

我知道模板

T add(T)(T a, Tb){
    return  a + b;
}
Run Code Online (Sandbox Code Playgroud)

但这需要用户询问哪种类型将返回,我想在里面计算哪种类型将返回如下:

T getField( size_t column ){
    if( column == 0 )
        T = int;
    else
        T = string;
    return to!T("1");
}
Run Code Online (Sandbox Code Playgroud)

我不知道我是否可以投射对象并改变原型.

谢谢大家

d variant dynamic-typing phobos

3
推荐指数
1
解决办法
307
查看次数

为什么+符号是javascript中的例外?

我这样做了

> 5 + 2 // 7, this is correct 

> 5 - 2 // 3 , obviously 

> 5 - "2" // 3 , ohh, that's awesome 

> 5 % "2" // 1 , :)

> 5 / "2" // 2.5,looks like 2 is automatically converted to integer.Perfect!

> 5 + "2" // "52" Really? 
Run Code Online (Sandbox Code Playgroud)

确定性,额外的东西正在加号.那是什么,为什么?

javascript dynamic-typing implicit-conversion

3
推荐指数
1
解决办法
113
查看次数

是否需要静态输入类型安全的语言?

我试图理解语言对类型安全的意义.在动态类型语言中,类型检查在运行时执行,例如,如果我运行以下PHP代码:

<?php
class MyClass
{ 
}

// Create a MyClass instance
$mc = new MyClass();

// Create an int variable
$i = 1234;

// Add $mc and $i
$result = $mc + $i;
?>
Run Code Online (Sandbox Code Playgroud)

我会收到错误,因为+ operator它不支持MyClass数据类型.所以基本上类型检查是在运行时执行的.

类型安全是否意味着无论是在编译时还是在运行时执行类型检查,或者它是否意味着必须仅在编译时执行类型检查,因此必须明确地为每个变量提供数据类型(如C ,Pascal,Java等).

php programming-languages static-typing dynamic-typing type-safety

3
推荐指数
1
解决办法
1396
查看次数

boost ::任何类型有限的支持

我希望有一种类似行为boost::any但类型更有限的类型.像这样的东西:

limited_any<int,long,string> x; // x is like boost::any but is guaranteed to contain only an int, a long, or a string
Run Code Online (Sandbox Code Playgroud)

您会如何推荐实施此功能?(无论是我自己还是使用现有的解决方案)

c++ types dynamic-typing boost-any c++11

3
推荐指数
1
解决办法
143
查看次数

如何在Java中动态创建类型的实例

在我的Java应用程序中,我有方法

public <T extends Transaction> boolean appendTransaction(T transaction) {
   ...
}
Run Code Online (Sandbox Code Playgroud)

在这个方法里面我需要创建一个扩展Transaction的对象T的实例

这样做是否正确

T newTransaction = (T) transaction.getClass().newInstance();
Run Code Online (Sandbox Code Playgroud)

java dynamic-typing

2
推荐指数
1
解决办法
2255
查看次数

MVC LINQ动态命令获取列类型

我正在尝试动态订购产品列表.

Product:
price (int)
name (string)
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已成功获得以下内容:

string columnToOrderBy = "price";
ParameterExpression param = Expression.Parameter(typeof(Product), "p");
var ordering = Expression.Lambda<Func<Product, double>>(Expression.Property(param, columnToOrderBy), param);
Run Code Online (Sandbox Code Playgroud)

这适用于按价格排序,但由于列类型,按名称排序时无效.

Expression.Lambda<Func<Product, double>>
Run Code Online (Sandbox Code Playgroud)

无论如何都要在Func方法中获取列的类型来设置它?

c# linq asp.net-mvc dynamic-typing

2
推荐指数
1
解决办法
4212
查看次数

为什么匿名类型不像ExpandoObject那样动态?

随着dynamic我们非常有动感指针,但不完全是一个动态对象.C#中真正的动态对象是ExpandoObject,但对于大多数人来说,这是一个非常未知的类.expando允许在运行时创建和删除成员,就像哈希(类似于JavaScript).

为什么ExpandoObject的优点是在一个单独的类中实现的,而不仅仅是,作为匿名类型的一个特性实现?

也许这不是一个好的举动,因为缺乏类型安全?或者可能是由于涉及(DLR)开销?

c# anonymous-types dynamic-typing expandoobject

2
推荐指数
1
解决办法
1483
查看次数

推断类型和动态类型

在编程语言中,推断类型和动态类型之间有什么区别?我知道动态类型,但不知道动态类型与推断类型有何不同以及如何?有人可以举例说明吗?

type-inference dynamic-typing

2
推荐指数
1
解决办法
2356
查看次数

如何为类型参数设置 python 类型

我想为作为参数传递的 Python 类型正确添加类型。例如,假设我们想向以下函数添加类型:

def do_something_based_on_types(
    ...
    type_name: str,
    str_to_type_mapping: Dict[str, Any], # what instead of Any?
):
    ...
    object = str_to_type_mapping[type_name]()
    ...
Run Code Online (Sandbox Code Playgroud)

我们希望传递一个映射到str类型,基于该映射我们希望构造选定类的对象。对于这种情况,正确的类型是什么(而不是Any在代码示例中使用)。

python typing dynamic-typing

2
推荐指数
1
解决办法
3496
查看次数

Python 中不同类型的相同变量名

我发现自己经常做类似的事情:

msg = ['This', 'is', 'a', 'message']  # (or built up programmatically)
msg = ' '.join(msg)
Run Code Online (Sandbox Code Playgroud)

它将变量的类型msg从 a更改list为 a str,就像 Python 等动态类型语言所允许的那样。但这是个好主意吗?这里的分配靠近在一起并没有太多混乱,但是如果msg在宽间隔的代码中以两种不同的形式使用怎么办?

python dynamic-typing

1
推荐指数
1
解决办法
1716
查看次数