我想在ruby中做这样的事情:
safe_variable = begin
potentially_nil_variable.foo
rescue
some_other_safe_value
end
Run Code Online (Sandbox Code Playgroud)
...并将异常块(开始/救援/结束)视为函数/块.这不起作用,但有没有办法得到类似的结果?
请注意,我实际上在做的是这个,但是IMO很丑陋:
begin
safe_variable = potentially_nil_variable.foo
rescue
safe_variable = some_other_safe_value
end
Run Code Online (Sandbox Code Playgroud)
UPDATE
我想我在ruby语法上遇到了一个问题.我实际上在做的是:
object_safe = begin potentially_nil_variable.foo
rescue ""
end
Run Code Online (Sandbox Code Playgroud)
错误是class or module required for rescue clause.可能它认为""应该是异常结果的占位符.
ToolStripComboBox放在ToolStripButton之后,后面是另一个右对齐的.如何最好地设置ToolStripComboBox以始终调整其长度以填充前面和下面的ToolStripButtons之间的所有可用空间?
在过去,我曾经处理父调整大小事件,根据相邻元素坐标计算要设置的新长度并设置新大小.但是现在,当我开发一个新的应用程序时,我想知道是否没有更好的方法.
如果属性是字符串类型,在Objective-C中是否有一种方法可以通过包含对象的属性搜索对象数组?
例如,我有一个人物对象的NSArray.Person有两个属性,NSString*firstName和NSString*lastName.
搜索数组以找到在firstName或lastName属性中的任何位置匹配"Ken"的所有人的最佳方法是什么?
如果我有一个调用的对象
addEventListener(Event.ENTER_FRAME, update);
addEventListener(Event.ENTER_FRAME, update);
Run Code Online (Sandbox Code Playgroud)
会增加2个听众吗?
寻找通过FTP检查给定目录的最佳方法.
目前我有以下代码:
private bool FtpDirectoryExists(string directory, string username, string password)
{
try
{
var request = (FtpWebRequest)WebRequest.Create(directory);
request.Credentials = new NetworkCredential(username, password);
request.Method = WebRequestMethods.Ftp.GetDateTimestamp;
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
FtpWebResponse response = (FtpWebResponse)ex.Response;
if (response.StatusCode == FtpStatusCode.ActionNotTakenFileUnavailable)
return false;
else
return true;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
无论目录是否存在,都返回false.有人能指出我正确的方向.
我想生成一个二进制掩码,其中包含内部所有体素的二进制掩码,以及体积外所有体素的零.体积由围绕一组3D坐标(<100;一些坐标在体积内)的凸包定义.
我可以使用CONVHULLN获取凸包,但是如何将其转换为二进制掩码?
如果没有通过凸包的好方法,你还有其他想法如何创建二进制掩码?
在旧版本的API中,我必须使用类似的东西将javascript插入到页面中,以便只使用基本功能:
http://maps.google.com/maps?file=api&v=2&key= GoogleMapsAPIKey
我必须为每个站点配置API密钥.看一下文档,它说要获得一个基本的地图,我只需要这个:
http://maps.google.com/maps/api/js?sensor= true/false
API密钥在哪里适用?如果我只是计划使用基本地图和标记而不是更高级的功能,我是否需要担心?
我也在localhost上测试,但常见问题解答说我还需要为它注册一个密钥,我还没有这样做,它仍然有效.
分析我的cpu绑定代码表明我花了很长时间检查容器是否包含完全唯一的元素.假设我有一些未分类元素的大容器(有<和=定义),我有两个关于如何做到这一点的想法:
第一个使用一组:
template <class T>
bool is_unique(vector<T> X) {
set<T> Y(X.begin(), X.end());
return X.size() == Y.size();
}
Run Code Online (Sandbox Code Playgroud)
第二个循环元素:
template <class T>
bool is_unique2(vector<T> X) {
typename vector<T>::iterator i,j;
for(i=X.begin();i!=X.end();++i) {
for(j=i+1;j!=X.end();++j) {
if(*i == *j) return 0;
}
}
return 1;
}
Run Code Online (Sandbox Code Playgroud)
我已经尽我所能测试了它们,而且从阅读有关STL的文档中我可以收集到的,答案是(像往常一样),这取决于.我认为在第一种情况下,如果所有元素都是唯一的,那么它非常快,但如果存在大的简并性,则操作似乎需要O(N ^ 2)时间.对于嵌套迭代器方法,相反似乎是正确的,X[0]==X[1]如果所有元素都是唯一的,则可以快速点亮,但是(如果可以理解)O(N ^ 2)时间.
有没有更好的方法来做到这一点,也许是为此目的而构建的STL算法?如果没有,有什么建议可以提高效率吗?
我创建了一个自定义视图,从nib加载其内容,如下所示:
/* PricingDataView.h */
#import <UIKit/UIKIt.h>
@interface PricingDataView : UIView {
UIView *contentView;
}
@property (nonatomic, retain) IBOutlet UIView *contentView;
@end
/* PricingDataView.m */
#import "PricingDataView.h"
@implementation PricingDataView
@synthesize contentView;
- (id)initWithFrame:(CGRect)frame {
if ((self = [super initWithFrame:frame])) {
[[NSBundle mainBundle] loadNibNamed:@"PricingDataView" owner:self options:nil];
[contentView setFrame:frame];
[self addSubview:contentView];
}
return self;
}
/* ... */
Run Code Online (Sandbox Code Playgroud)
在nib文件中,我设置PricingDataView为文件所有者的类型,并连接contentViewIB中的插座.我将UIView接口库中的常规放置到显示给用户的全尺寸视图,然后将其类名更改为PricingDataView.它全部构建,但在运行时,我的自定义视图应该是什么都没有呈现.
我把断点放进去PricingDataView.initWithFrame,但它们没有击中,所以我知道我错过了会导致视图被初始化的东西.我很好奇的是,在从nib加载我的其他视图的过程中,所有的初始化都发生在我身上,但不是这个.为什么?
这是有问题的查询
return _projectDetail.ExpenditureDetails
.Where(detail => detail.ProgramFund == _programFund
&& detail.Expenditure.User == _creditCardHolder)
.Sum(detail => detail.ExpenditureAmounts.FirstOrDefault(
amount => amount.isCurrent && !amount.requiresAudit)
.CommittedMonthlyRecord.ProjectedEac);
Run Code Online (Sandbox Code Playgroud)
表结构
ProjectDetails(1到多个)支出详细信息
支出详细信息(1到多个)支出
支出支出额(1比1)承诺月度记录
ProjectedEac是CommittedMonthlyRecords上的十进制字段.
我在单元测试中发现的问题(尽管不太可能发生),以下行可能为null:
detail.ExpenditureAmounts.FirstOrDefault(
amount => amount.isCurrent && !amount.requiresAudit)
Run Code Online (Sandbox Code Playgroud)
我的原始查询是一个嵌套循环,在那里我将多次访问数据库,我不想重复.我在这里看到了类似的问题,但解决方案似乎并不合适.
有任何想法吗?