这样做会被认为是好的做法......
我有A类,其定义如下:
class A{
private $_varOne;
private $_varTwo;
private $_varThree;
public $varOne;
public function __get($name){
$fn_name = 'get' . $name;
if (method_exists($this, $fn_name)){
return $this->$fn_name();
}else if(property_exists('DB', $name)){
return $this->$name;
}else{
return null;
}
}
public function __set($name, $value){
$fn_name = 'set' . $name;
if(method_exists($this, $fn_name)){
$this->$fn_name($value);
}else if(property_exists($this->__get("Classname"), $name)){
$this->$name = $value;
}else{
return null;
}
}
public function get_varOne(){
return $this->_varOne . "+";
}
}
$A = new A();
$A->_varOne; //For some reason I need _varOne to be …Run Code Online (Sandbox Code Playgroud) 我一直使用基于接口的git客户端(smartGit),因此对git控制台没有多少经验.
但是,我现在需要在历史记录中替换所有.txt文件中的字符串(因此,不要删除整个文件而只是替换字符串).我找到了以下命令:
git filter-branch --tree-filter 'git ls-files -z "*.php" |xargs -0 perl -p -i -e "s#(PASSWORD1|PASSWORD2|PASSWORD3)#xXxXxXxXxXx#g"' -- --all
Run Code Online (Sandbox Code Playgroud)
我试过这个,不幸的是注意到密码确实发生了变化,所有二进制文件都被破坏了.图像等都会被破坏.
有没有更好的方法来做到这一点,不会破坏我的二进制文件?
谢谢.
编辑:
我搞砸了什么.导致二进制文件损坏的实际代码是:
$ git filter-branch --tree-filter "find . -type f -exec sed -i -e 's/originalpassword/newpassword/g' {} \;"
Run Code Online (Sandbox Code Playgroud)
顶部的代码实际上使用我的密码奇怪地删除了所有文件.
git version-control substitution git-filter-branch git-rewrite-history
可能重复:
"如果object为null,则返回null;如果object不为null,则返回object.member"
有些语言有一个安全的导航操作符,让您不必担心空引用异常.
Groovy语言示例:
String lname = person.Name.ToLowerCase(); //throws exception if Name is null
String lname = person.Name?.ToLowerCase();//lname will be null if Name was null
Run Code Online (Sandbox Code Playgroud)
如何在C#中完成与此类似的操作?到目前为止,我的解决方案是这样的扩展方法:
public static T o<T>(this T obj) where T : new()
{
return obj != null ? obj : new T();
}
//used like: String lname = person.o().Name; //returns null if person was null
Run Code Online (Sandbox Code Playgroud)
但是,这仅适用于某些情况.
似乎无法弄清楚这一点.我在GSON中尝试JSON树操作,但我有一个案例,我不知道或有一个POJO转换为字符串,在转换之前JsonObject.有没有办法直接从a String到JsonObject?
我尝试了以下(Scala语法):
val gson = (new GsonBuilder).create
val a: JsonObject = gson.toJsonTree("""{ "a": "A", "b": true }""").getAsJsonObject
val b: JsonObject = gson.fromJson("""{ "a": "A", "b": true }""", classOf[JsonObject])
Run Code Online (Sandbox Code Playgroud)
但a失败了,JSON被转义并解析为JsonString唯一,并
b返回一个空JsonObject.
有任何想法吗?
考虑这种字典格式.
{'KEY1':{'name':'google','date':20100701,'downloads':0},
'KEY2':{'name':'chrome','date':20071010,'downloads':0},
'KEY3':{'name':'python','date':20100710,'downloads':100}}
Run Code Online (Sandbox Code Playgroud)
我希望首先按下载排序字典,然后按日期排序没有下载的所有项目.显然字典无法排序,我只需要一个可以迭代的按键排序列表.
['KEY3','KEY1','KEY2']
Run Code Online (Sandbox Code Playgroud)
我已经可以通过使用值对列表进行排序sorted,但是如何按第二个值排序?
我丢失了我创建的视图的脚本.我可以使用管理工作室从数据库中检索/重新创建脚本吗?
我想搜索多个模型并按某些模型具有的某些属性进行过滤,有些则不需要.我希望带有属性的模型得到过滤,但没有它的模型只是忽略它.
目前只有具有该属性的模型才会返回结果.有没有办法让其他模型以某种方式忽略属性过滤器返回结果?
我有一个带PaperClip/S3的Rails 3应用程序......
是否可以允许用户上传PDF,将PDF转换为图像,然后上传?
谢谢!
这甚至可能吗?因为我注意到v-sync根本不能在我的笔记本电脑上工作,所以我"手动"构建FPS限制器,现在我想使用用户设置到他的屏幕的FPS限制.
编辑:我的意思是显示器hz率.
Edit3:继承了我工作的代码(我认为......那里有什么不对吗?):
DEVMODE lpDevMode;
memset(&lpDevMode, 0, sizeof(DEVMODE));
lpDevMode.dmSize = sizeof(DEVMODE);
lpDevMode.dmDriverExtra = 0;
if(EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &lpDevMode) == 0){
framerate_limit = 60; // default value if cannot retrieve from user settings.
}
Run Code Online (Sandbox Code Playgroud)
根据需要,这是我的v-sync启用代码jay.lee要求:
PFNWGLSWAPINTERVALEXTPROC wglSwapIntervalEXT = NULL; // global
...
wglSwapIntervalEXT = (PFNWGLSWAPINTERVALEXTPROC) wglGetProcAddress("wglSwapIntervalEXT");
v_sync_enabled = 0;
if(wglSwapIntervalEXT != NULL){
if(wglSwapIntervalEXT(1) != FALSE){
v_sync_enabled = 1;
}
}
Run Code Online (Sandbox Code Playgroud) basic ×1
c# ×1
c++ ×1
dictionary ×1
git ×1
gson ×1
imagemagick ×1
java ×1
json ×1
macos ×1
opengl ×1
pdf ×1
php ×1
python ×1
python-2.5 ×1
search ×1
sorting ×1
sql-server ×1
substitution ×1
windows ×1