如果我想在Java中为给定对象生成哈希,我知道的最简单方法是使用Apache Commons HashCodeBuilder:
public class Person {
String name;
int age;
boolean smoker;
...
public int hashCode() {
// you pick a hard-coded, randomly chosen, non-zero, odd number
// ideally different for each class
return new HashCodeBuilder(17, 37).
append(name).
append(age).
append(smoker).
toHashCode();
}
}
Run Code Online (Sandbox Code Playgroud)
C++中有类似的东西吗?
我想在bash中检查目录是否有文件.我的代码在这里.
for d in {,/usr/local}/etc/bash_completion.d ~/.bash/completion.d
do
[ -d "$d" ] && [ -n "${d}/*" ] &&
for f in $d/*; do
[ -f "$f" ] && echo "$f" && . "$f"
done
done
Run Code Online (Sandbox Code Playgroud)
问题是"〜/ .bash/completion.d"没有文件.所以,$ d/*被认为是简单的字符串"〜/ .bash/completion.d/*",而不是空字符串,这是文件名扩展的结果.作为该代码的结果,bash尝试运行
. "~/.bash/completion.d/*"
Run Code Online (Sandbox Code Playgroud)
当然,它会生成错误消息.
有谁能够帮我?
我有一个像这样的IntermediateDirectory的VS项目:"....\temp\$(SolutionName)\ $(ProjectName)".
我可以使用宏或添加来读取此值,但是,我需要实际的目录来操作那里的文件.现在,我用相应的值手动替换"$(SolutionName)"和"$(ProjectName)",这样可以正常工作,但是当使用不同的宏甚至是属性表中的用户宏时,可能会变得复杂.
所以我的问题是:Visual Studio API是否具有内置函数来扩展这些宏?还是有其他优雅的解决方案吗?
我创建了一个将图像转换为灰度的类.但它的工作方式太慢了.有没有办法让它更快地运作?
这是我的班级:
@implementation PixelProcessing
SYNTHESIZE_SINGLETON_FOR_CLASS(PixelProcessing);
#define bytesPerPixel 4
#define bitsPerComponent 8
-(UIImage*)scaleAndRotateImage: (UIImage*)img withMaxResolution: (int)kMaxResolution
{
CGImageRef imgRef = img.CGImage;
CGFloat width = CGImageGetWidth(imgRef);
CGFloat height = CGImageGetHeight(imgRef);
CGAffineTransform transform = CGAffineTransformIdentity;
CGRect bounds = CGRectMake(0, 0, width, height);
if ( (kMaxResolution != 0) && (width > kMaxResolution || height > kMaxResolution) ) {
CGFloat ratio = width/height;
if (ratio > 1) {
bounds.size.width = kMaxResolution;
bounds.size.height = bounds.size.width / ratio;
}
else {
bounds.size.height = kMaxResolution;
bounds.size.width = bounds.size.height …Run Code Online (Sandbox Code Playgroud) 随着即将发布的Visual Studio 2010以及C#4.0中所有可爱的新功能,我真的很想从2008年开始更新.但是,在过去的几年里,我已经成功获得学生定价,甚至免费版本MSDN学术联盟.
现在我不再是学生了.
我似乎无法证明即使是标准版的$ AU500价格也是合理的,这本质上是一种爱好.尽管我可能喜欢它,但它只是不付账单.
所以,我读过微软的网站,有一个在Express版本EULA,因为我认为应该有报酬的工作偶尔位,这是很好没有非商业条款上.与Professional相比,Express版本缺少多少(我目前使用的是什么,以及2010 beta版是什么)?当我找到那些不存在的东西时,我是否可能会经历戒断痛苦?
对于插件来说,唯一一个我真正玩过的是VisualSVN,我可以忍受手动使用TortoiseSVN.还有什么我应该知道的吗?
如果我想创建一个保证不代表文件名的字符串,我可以在Windows上放入以下字符之一:
\ / : * ? | < >
Run Code Online (Sandbox Code Playgroud)
例如
this-is-a-filename.png
?this-is-not.png
Run Code Online (Sandbox Code Playgroud)
有没有办法在Linux上将字符串标识为"不太可能是文件"?
我正在尝试在Android中加载我想要平铺的位图.我目前在视图中使用以下内容来显示位图:
canvas.drawBitmap(bitmap, srcRect, destRect, null)
Run Code Online (Sandbox Code Playgroud)
我本质上想在我的应用程序中使用此位图作为背景图像,并希望在X和Y方向上重复位图.
我已经看到了在TileMode.REPEAT不变BitmapShader类,但我不知道这是用于重复实际的位图或用于应用过滤器位图.
假设我们正在创建一个System.Array
Array _twoD = Array.CreateInstance(typeof(string), 2,2);
_twoD.SetValue("Harrish", 0, 0);
_twoD.SetValue("Goel", 0, 1);
_twoD.SetValue("Prakash", 1, 0);
_twoD.SetValue("Manish", 1, 1);
foreach (string str in _twoD)
{
Console.WriteLine(str);
}
Run Code Online (Sandbox Code Playgroud)
枚举器如何自动迭代[0,0] [0,1],[1,0],[1,1]?
[对于单维数组,很容易理解,2D和3D内部会发生什么?]
我们可以使用System.Array创建Jagged Style数组吗?
atan2(y,x)在180°处具有不连续性,其顺时针切换到-180°..0°.
如何将值范围映射到0°.360°?
这是我的代码:
CGSize deltaPoint = CGSizeMake(endPoint.x - startPoint.x, endPoint.y - startPoint.y);
float swipeBearing = atan2f(deltaPoint.height, deltaPoint.width);
Run Code Online (Sandbox Code Playgroud)
在给定startPoint和endPoint两个XY点结构的情况下,我正在计算滑动触摸事件的方向.该代码适用于iPhone,但任何支持atan2f()的语言都可以.
感谢您的帮助,包括一般解决方案和代码.
更新:我将erikkallen的答案变成了一个具有漂亮的长变量名的函数,所以我将在6个月后理解它.也许它会帮助其他一些iPhone noob.
float PointPairToBearingDegrees(CGPoint startingPoint, CGPoint endingPoint)
{
CGPoint originPoint = CGPointMake(endingPoint.x - startingPoint.x, endingPoint.y - startingPoint.y); // get origin point to origin by subtracting end from start
float bearingRadians = atan2f(originPoint.y, originPoint.x); // get bearing in radians
float bearingDegrees = bearingRadians * (180.0 / M_PI); // convert to degrees
bearingDegrees = (bearingDegrees > 0.0 ? bearingDegrees : (360.0 + …Run Code Online (Sandbox Code Playgroud)