在javascript中,我可以使用简单的for循环访问对象的每个属性,如下所示
var myObj = {x:1, y:2};
var i, sum=0;
for(i in myObj) sum = sum + myObj[i];
Run Code Online (Sandbox Code Playgroud)
我想知道我是否可以用F#做类似的事情.
type MyObj = {x:int; y:int}
let myObj = {x=1; y=2}
let allValues:seq<int> = allPropertyValuesIn myObj //How do I implement allPropertyValuesIn
let sum = allValues |> Seq.fold (+) 0
Run Code Online (Sandbox Code Playgroud)
谢谢您的意见
编辑以澄清我为什么要做这样的事情
我正在研究XML文件生成器.输入是从数据库读取的行,xsd是预定义的.
假设我需要生成"产品"元素,并且根据业务规则,产品下可能有200个子元素,有些是必需的,有些是可选的.根据这个优秀博客的建议,我有第一个(非常粗略)的产品记录设计:
1. type Product{ Price:Money; Name:Name; FactoryLocation:Address option ... }
2. let product = {Price = Money(1.5); Name = Name ("Joe Tooth Paste"); ... }
3. let child1 = …Run Code Online (Sandbox Code Playgroud) 我正在使用PlayFramework 2.0开发一个项目.在阅读了一些scala之后,我想在View模板中嵌入一些动态代码.所以,我做了以下事情:
@{
def getMystring(sequence:Int) = {
if(patternForm != null &&
patternForm.get().windowTreatments != null &&
patternForm.get().windowTreatments.size() >= sequence + 1)
sequence+""
else
""
}
}
<input type = "text" value = @getMystring(1)></input>
...
Run Code Online (Sandbox Code Playgroud)
我很确定它会起作用,但我得到了一个"未找到:值getMyString错误发生".我做了明显错误的事吗?
我目前正在使用播放框架2开发一个Web应用程序.我在/ public目录下创建了一个文件夹"files".当我使用"play run"启动服务器时,可以访问该目录下的所有资源.
部署到服务器后.我通过运行"play start"启动服务器,发现"files"下的资源不再存在.
我想知道"play start"和"play run"之间不一致的原因是什么
更新:经过几次试验.我发现这是新上传的资源无法显示.方案如下:
1. play start --> server starts.
2. use application to upload a few images to the server.
3. try to display the uploaded image --> nothing is shown. browser shows the resource is not accessible.
4. kill the server process with task manager.
5. rm RUNNING_PID
6. run play start again
7. Try to display the uploaded image --> now the images are showing.
Run Code Online (Sandbox Code Playgroud)
因此,看起来像"播放开始"的"热更新"问题我是否可以做任何配置让服务器接受更改?谢谢.
最近,我在使用 PhpStorm 实现 PHP 应用程序时遇到了一个有趣的情况。下面的代码片段说明了这个问题。
interface I{
function foo();
}
trait T{
/**
* @return string
*/
public function getTraitMsg()
{
return "I am a trait";
}
}
class A implements I{
use T;
function foo(){}
}
class C implements I{
use T;
function foo(){}
}
class B {
/**
* @param I $input <===Is there anyway to specify that $input use T?
*/
public function doSomethingCool($input){ //An instance of "A" or "C"
$msg = $input -> getTraitMsg(); //Phpstorm freaks …Run Code Online (Sandbox Code Playgroud) 我正在创建SQL查询,涉及多个具有1到N关系的表以支持分页.
为了得到前10位父母,我试着去做
SELECT * from parent p
LEFT JOIN child c
ON c.parent_id = p.id
LIMIT 10
Run Code Online (Sandbox Code Playgroud)
如果任何父级有多个子级,则此方法无效
我能做的一个选择是
__CODE__
这非常笨拙.我想做的是
SELECT * from parent LIMIT 10 into temp_p;
SELECT * from temp_p p
LEFT JOIN child c
ON c.parent_id = p.id
Run Code Online (Sandbox Code Playgroud)
但当然语法错了.我想知道Postgresql是否有某种方式来支持我想做的事情.
我正在尝试将插件添加到CRM2011服务器.按照带有sdk的Plug-in Sample的步骤,一切都按预期工作.但是,当我尝试将插件注册到磁盘(默认为数据库)时,我得到了
Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: Unable to load plug-in assembly.
Run Code Online (Sandbox Code Playgroud)
似乎服务器找不到microsoft.xrm.sdk文件.但是为什么在发布到数据库时相同的设置工作正常?
我已经为文件夹C:\ program files\MicrosoftDynamics CRM\Server\bin添加了"写入"权限给用户"网络服务"但是得到了相同的错误消息.
服务器操作系统是Windows 2008 R2在vmware播放器虚拟机中运行.
我正在更新链接服务器的URL.在进行更改之前,我想知道所有引用此链接服务器的视图.是否有任何编程方式(TSQL)来执行此任务?
谢谢你的帮助.
我使用的是SQL Server 2005,2008和2012.引用链接服务器的数据库服务器主要是SQL Server 2005
我正在尝试将我的一个CoffeeScript库转换为TypeScript.到目前为止,经验还可以,除非我找不到相应的
locations = (new Location p.lat, p.lng for p in points)
Run Code Online (Sandbox Code Playgroud)
我是否必须for(i = 0; i < len; i++)为TypeScript 编写旧时尚的循环?
我想知道是否可以使用标准查询选择查询事务.
例如:
SELECT * FROM information_schema.transaction_logs
WHERE table_name = 'product' AND time_stamp > '2016-01-01';
Run Code Online (Sandbox Code Playgroud)
结果会是这样的
===> table_name | operation | old_val_json | new_val_json...
product | update | {....desc:...} | {...desc...}|
Run Code Online (Sandbox Code Playgroud)
查询不起作用,因为没有像transaction_logs这样的表,但是存在类似的东西吗?
我一直在考虑在F#中实施电子支付系统.一个关键要求是事务管理.
我使用了TransactionScope和Dapper,效果很好.我可以使用Tranq来管理数据库事务,但是想使用像TransactionScope这样的东西来管理在线操作.
相对较新的F#,我不知道是否有相当于的东西
using (var trans = new TransactionScope())
{
...//operations
trans.Complete();
}
Run Code Online (Sandbox Code Playgroud)
如果从C#到F#方法的线到线转换是错误的,那么是否还有管理交易的"功能方式"?
f# ×2
postgresql ×2
c#-to-f# ×1
crm ×1
php ×1
phpdoc ×1
phpstorm ×1
scala ×1
sql-server ×1
t-sql ×1
typescript ×1