小编MSX*_*MSX的帖子

JavaScript赋值会改变添加操作语义吗?

如果你评估{} + 1得到1,但是如果你将相同的表达式赋给变量,比如说x = {} + 1变量将保存一个字符串"[object Object]1".

为什么赋值会改变右侧表达式的语义?右手边的表达不应该是"无背景的"吗?

javascript

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

运行时的F#编译代码以缺少的程序集结束

我有一个与此问题的答案中提供的代码相关的问题.

我遇到的问题是CompilerParameters在运行时找不到传递给它的三个引用的assmeblies(System.dll,FSharp.Core.dll,FSharp.Powerpack.dll).我得到的错误是:

unknown-file(0,0):错误0:错误FS0218:无法读取程序集'c:\ user s\utente\documents\visual studio 2010\Projects\TrashSolution\TrashSolution\bin\D ebug\FSharp.Core.dll "

如何告诉编译器在GAC中搜索这些程序集,而不是项目的bin目录?如果我在作为字符串提供的代码中打开命名空间,我如何知道要添加哪些程序集?我在哪里可以获得这些信息?

f#

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

F#强制System.String.Format的重载

我想格式化一个System.String.Format有5个重载的字符串:

String String.Format(String format , Object arg0 )
String String.Format(String format , Object arg0 , Object arg1 )
String String.Format(String format , Object arg0 , Object arg1 , Object arg2 )
String String.Format(String format , params Object[] args )
String String.Format(IFormatProvider provider , String format , params Object[] args )
Run Code Online (Sandbox Code Playgroud)

我想使用第四个重载(采用一组对象的重载),如下所示:

let frm = "{0} - {1}"
let args = [| 1; 2 |]
System.String.Format(frm, args)
Run Code Online (Sandbox Code Playgroud)

问题是args参数被解释为一个Object,因此调用了第一个重载.所以我正确地得到以下错误:

System.FormatException: Index (zero based) must be greater than or equal to …
Run Code Online (Sandbox Code Playgroud)

f# overloading

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

标签 统计

f# ×2

javascript ×1

overloading ×1