我想在OCaml中创建一个查找表.该表将有7000多个条目,在查找(通过int)时,返回一个字符串.用于此任务的适当数据结构是什么?该表是否应该从基本代码中外部化,如果是,那么如何"包括"可以从他/她的程序访问查找表?
谢谢.
我试图通过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) 在我为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(以及我测试的其他域)相比,显然是可以访问的.如何利用此功能检查资源是否可达?
我正在尝试学习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) 我在 OCaml 中创建了一个直接对象。
let x =
object (self)
val dataMember = 3
method aMethod = print_endline "Called a method"
end;;
Run Code Online (Sandbox Code Playgroud)
由于对象没有名称(它被认为是匿名的吗?),如何在 UML 中正确表示它?
谢谢。
我正在尝试创建一个Chrome扩展程序,该扩展程序利用Chrome的webRequest模块执行对从最初访问的URL获得的URL的重定向。为此,我只想利用Chrome的webRequest函数(例如onBeforeSendHeaders,onHeadersReceived),而不是简单地使用获得的URL调用$ .ajax()。所需的功能是:
我试图做到这一点的是:
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模块接收的数据执行这种转发?
我在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) 我在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) 我试图将NSString中月份的名称替换为其两位数字值的名称,例如"January"=>"01","February"=>"02".我使用的方法如下:
if (mois==@"january") { mois=@"01";}
if (mois==@"February") { mois=@"02";}
Run Code Online (Sandbox Code Playgroud)
......但它不起作用.我该怎么做这个替换?
ocaml ×4
oop ×3
objective-c ×2
anonymous ×1
function ×1
interface ×1
ios ×1
iphone ×1
javascript ×1
list ×1
lookup ×1
nsarray ×1
nsstring ×1
nsurl ×1
parameters ×1
perl ×1
side-effects ×1
soap ×1
uml ×1
web-services ×1
webrequest ×1