我正在写一些依赖于数据文件的jUnit测试.这些数据文件应该放在哪里?我将如何(在jUnit测试中)获取该目录的位置?
在Python中,我会使用类似于:
datadir = os.dirname(__file__) + "/data/"
Run Code Online (Sandbox Code Playgroud) 我有一个列表,其中包含各种信息,我希望通过新的字符串format方法将其传递给几个字符串.作为一个玩具示例,让我们来定义
thelist = ['a', 'b', 'c']
我愿做一个print语句像print '{0} {2}'.format(thelist)和print '{1} {2}'.format(thelist)
当我运行这个时,我会收到消息IndexError: tuple index out of range; 当涉及到时,它显然将整个列表作为单个对象.当然,我会将其转化thelist为'a', 'b', 'c'.
我尝试使用元组并收到相同的错误.
这种特殊技术被称为地球上的什么?如果我知道这个名字,我本可以搜索一下."展开"显然不是它."爆炸"并没有产生任何有用的东西.
我的实际使用比玩具示例更长,更乏味.
在相当一段时间的情况下,我认为for循环只能以下列格式存在:
for (INITIALIZER; STOP CONDITION; INC(DEC)REMENTER)
{
CODE
}
Run Code Online (Sandbox Code Playgroud)
然而,绝对不是这样; 看看Fisher-Yates Shuffle的这个JavaScript实现:
shuffle = function(o)
{
for (var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
return o;
};
Run Code Online (Sandbox Code Playgroud)
这个小片段彻底打动了我的脑海; 在一个简单的for循环声明中,这个世界是如何进行的?我的意思是......它甚至没有打开支架!所有的魔力正在做那里的内部for声明.如果有人可以提供一个相对彻底的解释来说明世界上这个伏都教正在做它做什么,那将是绝对美妙的.非常感谢提前.
与Stack Overflow相关的问题Scala相当于新的HashSet(Collection),如何将Java集合(java.util.List比如说)转换为Scala集合List?
我其实想转换一个Java API调用Spring的 SimpleJdbcTemplate,它返回一个java.util.List<T>,成一个斯卡拉不变HashSet.例如:
val l: java.util.List[String] = javaApi.query( ... )
val s: HashSet[String] = //make a set from l
Run Code Online (Sandbox Code Playgroud)
这似乎有效.批评是受欢迎的!
import scala.collection.immutable.Set
import scala.collection.jcl.Buffer
val s: scala.collection.Set[String] =
Set(Buffer(javaApi.query( ... ) ) : _ *)
Run Code Online (Sandbox Code Playgroud) 有人可以向我解释为什么在.NET 2.0中,如果我有一个接口,IPackable以及一个实现该接口的类OrderItem,当我有一个接受a的方法List<IPackable>,传入一个列表List<OrderItem>不起作用?
有谁知道我怎么能完成这个功能?
码:
public interface IPackable {
double Weight{ get; }
}
public class OrderItem : IPackable
public List<IShipMethod> GetForShipWeight(List<IPackable> packages) {
double totalWeight = 0;
foreach (IPackable package in packages) {
totalWeight += package.Weight;
}
}
Run Code Online (Sandbox Code Playgroud)
以下代码不起作用.
List<OrderItem> orderItems = new List<OrderItem>();
List<IShipMethod> shipMethods = GetForShipWeight(orderItems);
Run Code Online (Sandbox Code Playgroud) 我可以使用DLLImport从C#调用C++代码的所有示例都来回传递.我可以让这些例子正常工作.我需要调用的方法将两个结构作为其导入参数,我不清楚如何使其工作.
这是我必须要做的事情:
我拥有C++代码,因此我可以对其进行任何更改/添加.
第三方应用程序将在启动时加载我的DLL并期望以某种方式定义DLLExport,因此我无法真正更改导出的方法签名.
我正在构建的C#app将用作包装器,因此我可以将这个C++片段集成到我们的其他一些应用程序中,这些应用程序都是用C#编写的.
我需要调用的C++方法签名看起来像这样
DllExport int Calculate (const MathInputStuctType *input,
MathOutputStructType *output, void **formulaStorage)
Run Code Online (Sandbox Code Playgroud)
MathInputStructType定义如下
typedef struct MathInputStuctTypeS {
int _setData;
double _data[(int) FieldSize];
int _setTdData;
} MathInputStuctType;
Run Code Online (Sandbox Code Playgroud) 如何将此伪代码转换为工作js [不要担心结束日期的来源,除非它是一个有效的javascript日期].
var myEndDateTime = somedate; //somedate is a valid js date
var durationInMinutes = 100; //this can be any number of minutes from 1-7200 (5 days)
//this is the calculation I don't know how to do
var myStartDate = somedate - durationInMuntes;
alert("The event will start on " + myStartDate.toDateString() + " at " + myStartDate.toTimeString());
Run Code Online (Sandbox Code Playgroud) 当我遇到编程问题时,我自然会开始将它们分解为我脑子里的逻辑对象.谁有责任,谁拥有什么,谁来自什么,等等.
我正在与C斗争.我只是不知道如何用程序语言做事.
有经验的C程序员可以帮助解释我在设计时如何考虑我的程序吗?
例如,我想编写自己的Semaphore类.我自然需要一个队列的数据结构,我也想自己编写.如果我需要在Java或C#中执行此操作,我可以简单地编写一个快速的Queue类,并在我的Semaphore类中创建它的新实例.
但在C中,没有对象.那么我是否必须内联我的Queue数据结构的所有行为?
有人可以帮我"搞定"吗?
我有一个iPhone应用程序正在获取内存警告,所以我试图在仪器的帮助下找到泄漏,更有效地使用内存等.除此之外,我正在尝试取出任何自动释放的对象并替换为手动alloc/init/release对象.但是,某些API调用似乎没有"init"版本(请参阅下面的代码).我承认有一些基本的误解:
如果我'调用'API并返回基本上自动释放的对象,那么这些对象是否会在仪器中显示为泄漏?我似乎在仪器中看到了这种行为.
如果是2,我应该忽略,如果没有"非自动释放"替代方案,我正在使用我需要的API吗?此外,如果这个代码被调用很多,我应该完全重新考虑algor吗?
这是我的应用程序中的一些实用程序代码,它被调用很多.基本上确定两个日期是否有意义"相等".我已经留下了注释掉的代码,这样你就可以看到我在我的代码库中要进行的改进类型 - 当我开始手动创建NSDate(和发布)时,这个DID减少了随后在Instruments中运行时的内存泄漏帮助.但是,我仍然有我相信泄漏的日期组件对象...但它是一个API调用(对于代码格式化很抱歉,但我似乎无法在SO上改进它):
+ (BOOL)isDayEqualToDay:(NSDate*)date anotherDate:(NSDate*)anotherDate
{
NSCalendar *cal = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
//NSCalendar *cal;
NSDateComponents *componentsFromDate, *componentsFromAnotherDate;
NSUInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
//cal = [NSCalendar currentCalendar];
componentsFromDate = [cal components:unitFlags fromDate:date];
componentsFromAnotherDate = [cal components:unitFlags fromDate:anotherDate];
BOOL bDatesEqual = ([componentsFromDate year] == [componentsFromAnotherDate year] &&
[componentsFromDate month] == [componentsFromAnotherDate month] &&
[componentsFromDate day] == [componentsFromAnotherDate day]);
[cal release];
return bDatesEqual;
/*
return (
[componentsFromDate year] == [componentsFromAnotherDate year] &&
[componentsFromDate …Run Code Online (Sandbox Code Playgroud) 假设我创建并执行了一个System.Net.FtpWebRequest.
我可以catch (WebException ex) {}用来捕获此请求引发的任何与Web相关的异常.但是,如果我有一些逻辑,我只想在抛出异常时执行(550) file not found?
最好的方法是什么?我可以复制异常消息并测试相等性:
const string fileNotFoundExceptionMessage =
"The remote server returned an error: (550) File unavailable (e.g., file not found, no access).";
if (ex.Message == fileNotFoundExceptionMessage) {
Run Code Online (Sandbox Code Playgroud)
但从理论上讲,这条消息似乎可能会改变.
或者,我可以测试一下异常消息是否包含"550".如果消息被更改,这种方法可能更有效(它可能在文本中的某处仍然包含"550").但是,如果其他一些文本WebException碰巧包含"550",那么这样的测试当然也会返回.
似乎没有一种方法可以只访问异常的数量.这可能吗?
c# ×3
.net ×2
java ×2
javascript ×2
arguments ×1
c ×1
c++ ×1
casting ×1
cocoa-touch ×1
exception ×1
generics ×1
instruments ×1
iphone ×1
junit ×1
list ×1
memory-leaks ×1
objective-c ×1
python ×1
scala ×1
scala-2.7 ×1
unit-testing ×1