我有一个脚本,用于git diff --name-status查找给定分支和master分支之间的差异,并根据每个文件的更改方式执行各种操作。
Git 不跟踪重命名。虽然它知道在您暂存提交时文件已被重命名,但git diff --name-status仅显示旧名称已被删除并已添加新名称。这对我来说是一个问题,因为我想对已重命名的文件的脚本采取额外的步骤。
给定已添加文件的名称,我如何判断该文件是全新的还是另一个文件的重命名(如果是重命名,其以前的名称是什么)?
我有16个字节来保存字符串哈希.我理解当你将任意长度的字符串减少到固定长度的字节序列时,碰撞是生活中的事实,但我想尽可能地避免它们.我最好使用一个不推荐使用的算法,如MD5,输出为16字节,或者是尚未破解的算法的前16个字节,如SHA-256?
我知道可以定义一个函数并将其用作方法:
def method(*args, **kwargs):
print "%r %r" % (args, kwargs)
class Test(object):
method1 = method
t = Test()
t.method1() # (<__main__.Test object at 0x10705a4d0>,) {}
Run Code Online (Sandbox Code Playgroud)
我想用可调用对象做同样的事情,像这样:
class Method(object):
__call__ = method
class Test(object):
method1 = Method()
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时,self参数Method.__call__是方法本身(这是正常的),但实例的self参数Test丢失了.
t = Test()
t.method1() # (<__main__.Method object at 0x10703f110>,) {}
Run Code Online (Sandbox Code Playgroud)
是否可以将self参数作为第二个参数传递给Method.__call__?
我有一个学校工作,我需要在一个文件中将任意图像与其他数据一起保存到磁盘.
我们考虑将其与数据一起序列化; 但是,图像,甚至是BufferedImages,都无法序列化.
使用Java将单个文件中的其他数据保存图像的最简单方法是什么?老实说,我真的不关心文件大小.但是,如果它被压缩,我认为这是一个加号.
我的(删节)模式具有(或者更确切地说,需要)以下表和关系:
Clients (ID INT PRIMARY KEY)
Files (
ID INT PRIMARY KEY,
Client INT REFERENCES Clients(ID) ON DELETE CASCADE)
Interfaces (
ID INT PRIMARY KEY,
Client INT REFERENCES Clients(ID) ON DELETE CASCADE)
Files_Interfaces (
"File" INT REFERENCES Files(ID) ON DELETE CASCADE,
Interface INT REFERENCES Interfaces(ID) ON DELETE CASCADE)
Run Code Online (Sandbox Code Playgroud)
因此,您可以从此架构中看到,客户端可以拥有多个文件和多个接口.有接口和文件之间的许多一对多的关系(因此结合表Files_Interfaces),唯一的层级关系是客户端(有从一到多的关系Clients到Files和Interfaces).
我需要这些制约因素之间Files_Interfaces以及Files与Interfaces这样,如果我删除文件或接口,所有相关的关联被破坏.
问题是,SQL Server 2005不会让我拥有这个架构.当我尝试使用这些约束创建Files_Interfaces时,我收到以下错误:
在'Files_Interfaces'表上引入FOREIGN KEY约束'FK__Files_Int__Inter__3D2915A8'可能会导致循环或多个级联路径.指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束.
是什么赋予了?是因为如果我删除了一个客户端,那么这两个文件和接口都会被删除,然后Files_Interfaces记录有两个很好的理由消失?如果是这样,为什么这是一件坏事?
我可以以某种方式防止此错误?
由于非常具体的原因,我有一个这样的枚举:
typedef enum RSGameType
{
RSGameTypeUnknown = 0,
RSGameType1v1 = '1v1',
RSGameType2v2 = '2v2',
RSGameType3v3 = '3v3',
RSGameType4v4 = '4v4',
RSGameTypeCustom = 'Cust'
} RSGameType;
Run Code Online (Sandbox Code Playgroud)
然而,Clang警告我除了'Cust'之外每个项目的'多字符常数'(因为我认为这是一个4个字符的常量).
是否有正确的方法来关闭这些警告,除了使用数字等效?预先设置null('\x001v1')没有效果,虽然附加一个有效(但这是不合需要的,因为值不再准确).
我创建了一个bundle目标,它的Info.plist文件指定一个非常特定的类(让我们称之为PrincipalClass)应该是它的主要类.这个类是用Swift编写的,并且具有该@objc属性.该Info.plist文件已正确复制到捆绑包,我已经多次清理和重建项目.
但是,当我从Swift框架加载bundle时,它的主要类是一个不同的类(让我们称之为NotPrincipalClass).它没有标记@objc,事实上,它应该是捆绑内部的.我检查bundle.bundleURL了调试器,并且Info.plist捆绑包中的文件确实说它应该是PrincipalClass; 但是当我检查时bundle.infoDictionary,该NSPrincipalClass属性读NotPrincipalClass作一个字符串!(信息字典还包含几个未由Info.plist文件指定的键,DTCompiler例如.)
如果我完全删除NotPrincipalClass,我会得到另一个内部类,这仍然完全不是我的主要类.
我彻底检查了构建日志NotPrincipalClass,除了编译之外我没有看到任何提及.
什么可能导致这个?我该怎么做才能解决它?
我的理解是在Basic.lval 11中定义了C++中的严格别名:
(11)如果程序试图通过以下类型之一以外的glvalue访问对象的存储值,则行为未定义:
- (11.1)对象的动态类型,
- (11.2)对象的动态类型的cv限定版本,
- (11.3)与对象的动态类型类似的类型(在conv.qual中定义),
- (11.4)与对象的动态类型对应的有符号或无符号类型的类型,
- (11.5)一种类型,它是有符号或无符号类型,对应于对象动态类型的cv限定版本,
- (11.6)聚合或联合类型,包括其元素或非静态数据成员中的上述类型之一(递归地,包括子聚合或包含联合的元素或非静态数据成员),
- (11.7)一种类型,它是对象的动态类型的(可能是cv限定的)基类类型,
- (11.8)一个
char,unsigned char或std?::?byte类型.
通过我的阅读,每11.8,这总是合法的,因为程序x通过类型的glvalue 访问存储的值unsigned char:
int x = 0xdeadbeef;
auto y = reinterpret_cast<unsigned char*>(&x);
std::cout << y[1];
Run Code Online (Sandbox Code Playgroud)
我很好奇使用指向别名的指针unsigned char:
alignas(int) unsigned char[4] x;
auto y = reinterpret_cast<int*>(x);
*y = 0xdeadbeef;
Run Code Online (Sandbox Code Playgroud)
这是违反严格别名的吗?我的阅读是它不是,但我只是在另一个线程上被告知它是.仅对于basic.lval,在我看来没有UB,因为程序不会尝试访问存储的值:它存储一个新的而不读取它,只要后续读取使用x,就不会发生违规.
最近我下载了开源项目zbar,项目本身与我的问题无关,我仍然无法弄清楚是什么在他的viewcontroller中他能够做到这一点:
//
// EmbedReaderViewController.h
// EmbedReader
//
// Created by spadix on 5/2/11.
//
#import <UIKit/UIKit.h>
@interface EmbedReaderViewController
: UIViewController
< ZBarReaderViewDelegate >
{
ZBarReaderView *readerView;
UITextView *resultText;
ZBarCameraSimulator *cameraSim;
}
@property (nonatomic, retain) IBOutlet ZBarReaderView *readerView;
@property (nonatomic, retain) IBOutlet UITextView *resultText;
@end
Run Code Online (Sandbox Code Playgroud)
就是这样,就是整个文件,他怎么能看到委托和ZBarReaderView和ZBarCameraSimulator,而不导入任何东西???
我的实现工作正常,但我当然要导入文件,正如我在看这个例子时,它确实引起了我的注意,他没有导入任何东西......这怎么可能?
我试图用控制台应用程序截取我的屏幕截图,然后将其保存到我的桌面但由于某种原因..它告诉我,我的剪贴板是空的时候显然它不是..如果你检查代码你可以看到我按PrintScreen,当您这样做时,它会将其保存到剪贴板.
using System;
using System.Drawing;
using System.Windows.Forms;
namespace ScreenshotConsole
{
class Program
{
static void Main(string[] args)
{
screenshot();
Console.WriteLine("Printescreened");
saveScreenshot();
Console.ReadLine();
}
static void screenshot()
{
SendKeys.SendWait("{PRTSC}");
}
static void saveScreenshot()
{
//string path;
//path = "%AppData%\\Sys32.png"; // collection of paths
//path = Environment.ExpandEnvironmentVariables(path);
if (Clipboard.ContainsImage() == true)
{
Image image = (Image)Clipboard.GetDataObject().GetData(DataFormats.Bitmap);
image.Save("image.jpeg", System.Drawing.Imaging.ImageFormat.Jpeg);
}
else
{
Console.WriteLine("Clipboard empty.");
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 我从来都不是一个庞大的Python粉丝.我在老师真正参与其中的过程中学到了这一点,但他的热情似乎从未完全融入我们班级的其他成员:只要我们有机会,我们就跳到了C#/ Java.
无论如何.这不是一个总结经验,在语言中最让我烦恼的是,要弄清楚Python代码是否有用,你实际上必须执行它,并且因为像变量中的拼写错误这样的愚蠢而冒险中途冒险名字(抛出一个NameError).编译语言的编译器乍看起来很有吸引力,但是Python不会费心去抱怨,直到为时已晚.(我知道你可以随时一半通过与编译的程序太测试死,但至少它不会从一个错字.)
我还没有真正给它第二次机会,但是为了下一个学生,那里有Python静态分析或验证工具可以捕获大多数错误(我知道你不能抓住它们)编译器会抓住它们在编译时?
c++ ×2
java ×2
python ×2
.net ×1
c ×1
c# ×1
clang ×1
clipboard ×1
cryptography ×1
git ×1
hash ×1
import ×1
iphone ×1
nsbundle ×1
objective-c ×1
python-2.7 ×1
screenshot ×1
sql-server ×1
swift ×1
twilio ×1
validation ×1