当使用带反射的路径相关类型时,即使我有匹配的"底层类型",我也会遇到类型不匹配错误.什么是这些"非基础类型",为什么要检查它们而不是"基础类型"?
在下面的代码中,我希望该compare方法只接受A的同类型子类作为参数.错误发生在最后一行.
abstract class A(val a:Int) {
type Impl <: A
def compare(other:Impl) {
if(a==other.a) println("equal") else println("diff")
}
}
class B(a:Int) extends A(a) {type Impl = B}
object Test {
def newInst(a: Int, className: String) = {
val constr = Class.forName(className).getConstructors()(0)
constr.newInstance(a.asInstanceOf[AnyRef]).asInstanceOf[A]
}
def main(args: Array[String]) {
val b1 = newInst(4, "B")
val b2 = newInst(5, "B")
b1.compare(b2) // type mismatch error here
}
}
Run Code Online (Sandbox Code Playgroud)
在最后一行,我收到此错误:
error: type mismatch;
found : b2.type (with underlying type A)
required: …Run Code Online (Sandbox Code Playgroud) reflection type-systems scala abstract-type path-dependent-type
我意识到这段代码有问题.然而,我遇到了一些奇怪的行为,我想知道是否有人可以解释.
例1:
char *foo;
scanf("%s",foo);
printf("%s",foo);
Run Code Online (Sandbox Code Playgroud)
输出为:(null).
例2:
int i;
char *foo;
scanf("%s",foo);
printf("%s",foo);
Run Code Online (Sandbox Code Playgroud)
输出是:foo的val!
为什么int i的存在会导致这种"工作"?
我之前没有使用过Zombies,而且必须承认我不确定它在做什么.但有一点让我担心:
CFArray似乎不断增加其Live Bytes和#Living专栏以及一些我认为相关的mallocs.这是我的应用程序只是坐在那里,渲染(OpenGL)并等待输入.
我试过运行泄漏仪器,这并没有表明我在这段时间内发生了内存泄漏,甚至没有更多的分配.没有任何分配,更不用说CFArray了.
那么我应该相信哪两种乐器呢?或者仅仅是因为我不明白Zombies乐器究竟在做什么?
如果僵尸有任何体面的文档,任何人都可以指向我,那将是很酷的.Apple的文档似乎略微掩盖了它.
我想在过去30天的数据中使用图API搜索帖子(新闻Feed)?这样做的最佳做法是什么?Facebook Graph API是否有API限制来限制HTTP请求的请求?
我有一个html表,在特定的列中,文本设置为'Y'或'N'.我想知道如果值为'N',是否可以在加载时以编程方式将文本的颜色设置为红色?
<table>
<tr>
<td>N</td>
<td>Y</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud) 在Asp.net MVC应用程序中,我继承了这个问题(如果这是一个问题?),其中一个开发人员使用String了Date类型.
在我的模型中,该属性显示:
[Required]
[DisplayName("Registration Date")]
public string Registrationdate { get; set; }
Run Code Online (Sandbox Code Playgroud)
业务要求是该字段不是必需的,但如果该字段中存在某些内容,则它必须是有效日期.
如何在不更改数据类型的情况下实现此要求?
在我看来,IE9无法识别cellspacing.有人也注意到了这一点吗?
<table cellpadding="0" cellspacing="10" border="0" align="center" width="100%">
Run Code Online (Sandbox Code Playgroud) 是否可以在另一个存储过程中使用一个存储过程的结果?
即
CREATE PROCEDURE [dbo].[Proc1]
@ID INT,
@mfgID INT,
@DealerID INT
AS
BEGIN
DECLARE @Proc1Result UserDefinedTableVariable
EXEC @Proc1Result = Proc2
@SomeID = @ID,
@SomeID2 = @mfgID,
@SomeID3 = @DealerID
-- Now I want to use the table returned by the stored procedure here.
SELECT [col1],[col2] FROM @Proc1Result
END
Run Code Online (Sandbox Code Playgroud)
我尝试过使用INSERT INTO @Proc1Result EXEC Proc2 (with parameters passed),但INSERT EXEC无法在嵌套语句中调用.
有没有办法实现这个?环境是SQL Server 2008.
html ×2
asp.net ×1
asp.net-mvc ×1
c ×1
c# ×1
facebook ×1
hibernate ×1
html-table ×1
instruments ×1
linux ×1
memory-leaks ×1
news-feed ×1
nszombie ×1
php ×1
process ×1
reflection ×1
scala ×1
scanf ×1
sql ×1
sql-server ×1
type-systems ×1
types ×1
xcode ×1