在F#的printf中有格式说明符%A,它允许传递任何F#类型,并且它将被评估和打印。
例如:
type Result<'a> =
| Failure
| Success of 'a
printf "%A" (Success "hello") // prints out 'Success "hello"'
显然,Result<'a>不是一个内置的类型。
我可以在OCaml中声明类似的类型,但Printf.printf没有等效的说明符--相反,我必须实现
我在C/C++中经常使用这个宏:
#define MYLOG(x) (std::cout << "Value of " << #x << " is: " << x << std::endl);
它的用法如下:
int x = 1;
int y = 2;
MYLOG(x+y);
结果是:
Value of x+y is: 3
我还没有在任何不使用C预处理器的语言中复制这段代码。在任何其他语言中都可以吗?我希望能够在其他地方开始使用它。注意: eval不算数。我希望在我的代码中看到表达式,而不是字符串,这样
例如,在Java中,如果我有一个参数化的类,是否可以执行以下操作?
public class MyClass<T>{
public void aMethod {
..
T object = new T();
..
}
..
}
在Java中,我认为这是不可能的,因为编译器不知道调用哪个构造函数。但在C#中呢?我不懂这种语言,而且我读到过很多黑暗面的东西是可以做的,所以我想知道..
假设我有一些Scala代码,它调用了一个使用_作为标识符的Java库(我是这样做的--说来话长)。下面是一个简化的示例:
public class StupidUnderscore {
public static String _() { return "Please give me a real name!"; }
}
没问题对吧?只要逃避它:
scala> StupidUnderscore.`_`
res0: String = Please give me a real name!
直到今天早上我尝试更新到Scala2.10.2之前,这种方法一直有效:
scala
当类派生自具有False实现的类时,无法从is子类返回__subclashook__。我修改了来自:的代码,我只在两个类定义中添加了‘(大小)’:
from abc import ABCMeta
class Sized(metaclass=ABCMeta):
@classmethod
def __subclasshook__(cls, C):
if cls is Sized:
if any("__len__" in B.__dict__ for B in C.__mro__):
retur
我想使用对象数据库来持久化一些在IronPython中创建的类。数据库是用于.NET 2.0的db4o (今天下载)。代码如下所示:
import clr
clr.AddReferenceToFileAndPath(r"C:\dev\Db4objects\db4o-7.12-net20\bin\net-2.0\Db4objects.Db4o.dll")
from Db4objects.Db4o import *
db = Db4oFactory.OpenFile(r'G:\IronPython\test\db4o\database.db')
class Per
我有一个字符串,其中包含定义它所需的类名,
// this is the name of language class which i need to define it
String language = "english";
我可以把它定义为:
english eng = new english();
但是这个方法是针对固定名称的,但在我的例子中,字符串"language“可能会更改为另一个类名,例如,下一次可能是:
String language = "french";
所以我需要知道一个动态的方法来定义"language“字符串的类,在不
在C#中,它可能使用来调用子类(例如)上的重载方法,从而允许抽象类调用它自己没有定义的方法。Scala2.9 applyDynamic也有类似的可能吗?我尝试了以下方法
abstract class AggregateRoot extends Dynamic {
def applyChange(event: Event) {
this.applyDynamic("handleEvent")(event)
}
// this does not work
def applyDynamic(name : String)(args: Any*) = this