小编Mat*_*lly的帖子

OCaml中的查找表

我想在OCaml中创建一个查找表.该表将有7000多个条目,在查找(通过int)时,返回一个字符串.用于此任务的适当数据结构是什么?该表是否应该从基本代码中外部化,如果是,那么如何"包括"可以从他/她的程序访问查找表?

谢谢.

lookup ocaml

5
推荐指数
2
解决办法
1184
查看次数

使用带Perl的SOAP调用带参数的函数

我试图通过Perl使用SOAP访问Web服务,并且在调用需要参数的服务函数时遇到问题.决定SOAP调用的XSD说,

<xs:complexType name="getVersion"> 
<xs:sequence/> 
</xs:complexType> 
<xs:complexType name="getVersionResponse"> 
<xs:sequence> 
<xs:element minOccurs="0" name="return" type="xs:string"/> 
</xs:sequence> 
</xs:complexType>
...
<xs:complexType name="enumerateEntities"> 
<xs:sequence> 
<xs:element name="entityId" type="xs:int"/> 
<xs:element minOccurs="0" name="entityType" type="tns:entityType"/> 
</xs:sequence> 
</xs:complexType> 
<xs:complexType name="enumerateEntitiesResponse"> 
<xs:sequence> 
<xs:element maxOccurs="unbounded" minOccurs="0" name="return" nillable="true" type="xs:int"/> 
</xs:sequence> 
</xs:complexType> 
Run Code Online (Sandbox Code Playgroud)

根据服务的文档,这两个函数的签名是:

String getVersion ()
int[] enumerateEntities (int entityId, EntityType entityType)
Run Code Online (Sandbox Code Playgroud)

我可以调用第一个函数,它不需要输入参数,使用:

#!/usr/bin/perl

use SOAP::Lite;
my $uri = 'http://wsdl.mydomain.com/';
my $service = SOAP::Lite
 -> uri($uri)
 -> on_action(sub { sprintf '"Call by on_action: %s"',shift})
 -> proxy('http://192.168.1.100:8688/MyService/services/MyService.MyServicePort/');

$method = SOAP::Data->name("MyService")->attr({xmlns => $uri});
$getVersion = SOAP::Data->name("getVersion")->attr({xmlns=>$uri});#line …
Run Code Online (Sandbox Code Playgroud)

parameters perl soap web-services function

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

克服NSURL的checkResourceIsReachableAndReturnError的意外行为

在我为iOS 5创建的程序中,我遇到了NSURL的checkResourceIsReachableAndReturnError方法的意外行为.

我创建了一个新项目来验证问题并仅包含代码:

NSURL *url = [NSURL URLWithString:@"http://www.stackoverflow.com"];
NSError *err = nil;
if([url checkResourceIsReachableAndReturnError:&err]){
  NSLog(@"URL is reachable");
}else {
 NSLog(@"URL is not reachable");
}
Run Code Online (Sandbox Code Playgroud)

此外,我试过:

NSURL *url = [NSURL URLWithString:@"http://www.stackoverflow.com"];
NSError *err = nil;
[url checkResourceIsReachableAndReturnError:&err];
if(err == nil){
 NSLog(@"URL is reachable");
}else {
 NSLog(@"URL is not reachable");
}
Run Code Online (Sandbox Code Playgroud)

...仍然无济于事.结果始终是"URL无法访问",与stackoverflow.com(以及我测试的其他域)相比,显然是可以访问的.如何利用此功能检查资源是否可达?

nsurl ios

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

基本的OCaml OOP问题

我正在尝试学习oCaml,并且我遇到了以下程序无效的问题.

class myClass2 =
object
 method doSomething = Printf.printf "%s\n" "Doing something"
end;;

class myClass foo =
object
 val dMember = foo
 method doIt = dMember#doSomething
end;;

let mc2 = new myClass2;;
let mc = new myClass mc2;;
mc#doIt;;
Run Code Online (Sandbox Code Playgroud)

我在尝试编译程序时收到的错误是:

File "sample.ml", line 6, characters 5-84:
Some type variables are unbound in this type:
  class myClass :
    (< doSomething : 'b; .. > as 'a) ->
    object val dMember : 'a method doIt : 'b end
The method doIt has …
Run Code Online (Sandbox Code Playgroud)

oop ocaml

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

OCaml 直接对象的 UML

我在 OCaml 中创建了一个直接对象。

let x = 
object (self)
val dataMember = 3
method aMethod = print_endline "Called a method"
end;;
Run Code Online (Sandbox Code Playgroud)

由于对象没有名称(它被认为是匿名的吗?),如何在 UML 中正确表示它?

谢谢。

oop ocaml uml anonymous

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

收到响应后,使用Chrome webRequest进行URL转发

我正在尝试创建一个Chrome扩展程序,该扩展程序利用Chrome的webRequest模块执行对从最初访问的URL获得的URL的重定向。为此,我只想利用Chrome的webRequest函数(例如onBeforeSendHeaders,onHeadersReceived),而不是简单地使用获得的URL调用$ .ajax()。所需的功能是:

  1. 用户在地址栏中输入URL
  2. 发出请求并从HTTP响应中提取辅助URL
  3. 所述chrome.webRequest.onHeadersReceived处理程序将用户重定向到使用阻挡响应的redirectUrl属性该二次URL。

我试图做到这一点的是:

chrome.webRequest.onHeadersReceived.addListener(
 function(details){
  var secondaryURL = extractSecondaryURL(details);
  return {redirectUrl: secondaryURL}; //this doesn't work
 },
 {urls:["http://*/*", "https://*/*"]},
 ["blocking","responseHeaders"]
);
Run Code Online (Sandbox Code Playgroud)

...但是该页面永远不会转发。webRequest文档说:“仅用作对onBeforeRequest事件的响应。” 关于redirectUrl属性,这可能是罪魁祸首。

如何使用从响应标头和Chrome webRequest模块接收的数据执行这种转发?

javascript google-chrome webrequest google-chrome-extension

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

OCaml结构类型和列表

我在OCaml中的列表遇到问题.我读过冲突的陈述,说明列表是否可以在运行时修改.cons运算符可以在运行时使用吗?

另外,为什么杜宾犬(见下文)被允许列入吉娃娃名单?如何将另一个奇瓦瓦加入到列表中(如最后一行所尝试的那样)?

class virtual dog =
object
 method virtual bark : unit
end;;

class chihuahua =
object
 inherit dog
 method bark = Printf.printf "Yip!"

end;;

class doberman =
object
 inherit dog
 method bark = Printf.printf "Roar!"

end;;

let c1 = new chihuahua;;
let c2 = new chihuahua;;
let c3 = new chihuahua;;
let d1 = new doberman;;

let arrayOfDogs = [c1;c2;d1];;
arrayOfDogs :: c3;;
Run Code Online (Sandbox Code Playgroud)

oop ocaml interface list

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

使用NSArray的makeObjectsPerformSelector来产生副作用

我在Objective-C程序中有一个FoA的NSArray.我想调用每个Foo的doIt函数,但是,根据文档,NSArray的makeObjectsPerformSelector函数不允许修改原始Foos .当调用doIt时,doIt选择器为每个Foo更改m数据成员.如何在NSArray中的每个Foo上有效地执行此功能?

@interface Foo : NSObject {
    NSString *m;
}

@property (nonatomic, retain) NSString *m;

-(void)doIt;

@end
Run Code Online (Sandbox Code Playgroud)

side-effects objective-c nsarray

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

替换NSString的值

我试图将NSString中月份的名称替换为其两位数字值的名称,例如"January"=>"01","February"=>"02".我使用的方法如下:

if (mois==@"january") { mois=@"01";}   
if (mois==@"February") { mois=@"02";}
Run Code Online (Sandbox Code Playgroud)

......但它不起作用.我该怎么做这个替换?

iphone objective-c nsstring

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