标签: clone

使用PHP替换PHP脚本文件中的关键字

我有一个混合了html,text和php的PHP文件,包括名称areaname-house.php.该文件的text/html部分包含各个地方的字符串"areaname".另一方面,我有一系列带有城市名称的字符串.

我需要一个PHP脚本,它可以获取每个字符串(来自字符串数组),复制areaname-house.php并创建一个名为arrayitem-house.php的新文件,然后在新创建的文件中,将字符串"areaname"替换为arrayitem.我已经能够完成第一部分,我可以使用示例变量(城市名称)成功创建克隆文件,作为以下代码中的测试:

    <?php
    $cityname = "acton";
    $newfile = $cityname . "-house.php";
    $file = "areaname-house.php";

    if (!copy($file, $newfile)) {
        echo "failed to copy $file...n";

    }else{

        // open the $newfile and replace the string areaname with $cityname

    }

?>
Run Code Online (Sandbox Code Playgroud)

php replace clone file keyword

0
推荐指数
1
解决办法
337
查看次数

Object Class的受保护方法MemberWiseClone()

这可能是一个愚蠢的问题,但我不明白:

我有一个名为Card的课程.我想使用MemberWiseClone()进行浅层克隆.理论卡继承自Object.所以它应该能够使用MemberWiseClone(),即使MWC()受到保护?

我遗失/遗忘了什么吗?

c# clone protected

0
推荐指数
1
解决办法
1489
查看次数

使用CRTP转发构造函数

我正在使用带有CRTP的模板类来实现克隆模式,使用第二个模板参数Base来实现多级继承.当我尝试调用间接基类的构造函数时,我收到编译器错误.

class B
{
public:
    B() {} //trivial constructor
    virtual B* clone()=0;
};

template<class Base, class Derived>
class Clonable
    :public Base //weird, I know
{
public:
    virtual B* clone() {return new Derived(*this);}
};

class D1 : public Clonable<B, D1>
{
public:
    D1(int a); //non-trivial constructor. Different signature than B
};

class D2 : public Clonable<D1, D2>
{
public:
    D2(int a): D1(a) {} //compiler error here
}
Run Code Online (Sandbox Code Playgroud)

到目前为止我遇到的唯一解决方案是在Cloneable中使用可变参数模板构造函数,但我的编译器(VC++ 11)尚未实现它们.

c++ clone crtp

0
推荐指数
1
解决办法
1997
查看次数

哈希映射的副本

我有一个Hashmap <integer, Arraylist<Double>>.我想复制一份.我在考虑使用clonehashmap的方法.经过javadoc后,它说:

clone
Returns a shallow copy of this HashMap instance: the keys and values themselves are not cloned. 
Run Code Online (Sandbox Code Playgroud)

这个浅拷贝是什么意思?我想要一个单独的矩阵,其值在更新原始矩阵的值时不会改变.

为什么呢,

    if( hm1 == hm1.clone()) 
Run Code Online (Sandbox Code Playgroud)

返回false?

java clone hashmap

0
推荐指数
1
解决办法
625
查看次数

如何"深度"克隆闭源第三方类的属性?

.NET框架的ICloneable接口通常提供了一种支持克隆类实例的方法.

但是如果我有多个第三方类,并且不想单独关注每个属性,那么如何有效地克隆这些类的对象呢?(这些类的源代码不可用).有没有办法使用泛型扩展方法

我需要的是一个深度克隆,它创建一个包含所有属性和(子)对象的精确副本.


示例:假设您要UserQueryLinqPad中克隆对象:

void Main()
{
    UserQuery uc=this;
    var copy=uc.CreateCopy(); // clone it
}
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是一个CreateCopy()扩展,允许创建一个副本,而不必照顾这个类的细节,因为我没有自己的源UerQuery.

(注意,这UserQuery只是一个示例,用于显示我需要的内容,它也可以是PDF文档类,用户控件类,ADO.NET类或其他任何内容).

.net c# clone class object

0
推荐指数
1
解决办法
1081
查看次数

ArrayList <HeavyOjbect> clone()

我有一个关于Java中ArrayList的clone()方法的问题.

ArrayList<HeavyOjbect> original = new ArrayList<HeavyOjbect>();
original.add(new HeavyOjbect(0));
original.add(new HeavyOjbect(1));
original.add(new HeavyOjbect(2));
ArrayList<Integer> copy = original;
copy.remove(0);
Run Code Online (Sandbox Code Playgroud)

原创 - > [HeavyOjbect1,HeavyOjbect2]

copy - > [HeavyOjbect1,HeavyOjbect2]

现在使用clone()方法

ArrayList<HeavyOjbect> original = new ArrayList<HeavyOjbect>();
original.add(new HeavyOjbect(0));
original.add(new HeavyOjbect(1));
original.add(new HeavyOjbect(2));
ArrayList<Integer> copy = (ArrayList<HeavyOjbect>) original.clone();
copy.remove(0);
Run Code Online (Sandbox Code Playgroud)

原始 - > [HeavyOjbect0,HeavyOjbect1,HeavyOjbect2]

copy - > [HeavyOjbect1,HeavyOjbect2]

对 ?

但我无法弄清楚克隆的作用.它是否克隆每个HeavyObject?我的意思是如果克隆1000倍我的ArrayList,内存是否会爆炸?

编辑:所以克隆

new HeavyOjbect(0) -> @10
new HeavyOjbect(1) -> @20
new HeavyOjbect(1) -> @30

original(ref1 to @10, ref1 to @20, ref1 to @30)
copy(ref2 to @10, ref2 …
Run Code Online (Sandbox Code Playgroud)

java performance clone arraylist

0
推荐指数
1
解决办法
171
查看次数

数组克隆不起作用

我的代码出了什么问题?

在主要方法中我这样做:

int [] test=new int[48];

test=etable(Right[]).clone();
Run Code Online (Sandbox Code Playgroud)

我想要的是,'test'数组与'etable'方法的输出完全相同.

我的方法称为'etable':

public static int [] etable(int [] right){
int [] blabla=new int[48];
...
return blabla[]
}
Run Code Online (Sandbox Code Playgroud)

感谢您的意见

java eclipse arrays clone

0
推荐指数
1
解决办法
457
查看次数

在toString中使用equals或instanceof

好吧,我有一个带有'MartianManager'类的程序:*注意代码不完整仍然有一些缺失的部分只是提供了整个代码,以供参考完成后它将如何完成

import java.util.ArrayList;

public class MartianManager {
private ArrayList<Martian> martians;
private ArrayList<Martian> teleporters;

public void addMartian(Martian m) {
    martians.add(m);
    if(m instanceof GreenMartian)
        teleporters.add(m);
}
//public Object clone() {

public Martian getMartianClosestToID(int id) {  
}
public void groupSpeak() {
    for(Martian m : martians) {
        m.speak();
    }
}
public void groupTeleport(String dest) {    
}
}
Run Code Online (Sandbox Code Playgroud)

和火星类:

public abstract class Martian implements Cloneable {
int id;

public Martian(int id) {
    this.id = id;
}
public Object clone() throws CloneNotSupportedException {
    return super.clone();
} …
Run Code Online (Sandbox Code Playgroud)

java clone equals instanceof tostring

0
推荐指数
1
解决办法
658
查看次数

如何在python中复制文本文件

这就是我想要做的事情:

import copy
def printtext(swefile):
    for row in swefile:
        print(row)
text = open("wordsv.txt","r",encoding="utf-8")
text2 = copy.copy(text)
printtext(text)
print(text2.readlines())
Run Code Online (Sandbox Code Playgroud)

但这是不可能的,TypeError:无法序列化'_io.TextIOWrapper'对象.所以我想知道是否有一种很好的"克隆"文本变量的方法,这样我就可以再次打印所有的行.我知道我可以再次阅读该文件,但是这个答案并没有解决我遇到的更大的问题,所以任何有关如何完成这项工作的建议都是有帮助的.


这是更大的背景,因为我无法用你的建议解决我的问题:

with open(textfilename, "r", encoding = "utf-8") as swefile:
    for row in swefile:
        word = row.strip()
        tempfile = copy.copy(swefile)
        l = getFurthest(word,tempfile)
Run Code Online (Sandbox Code Playgroud)

我想在这里发生的事情是,我想发送swefile尚未读取的部分(即通过for循环迭代)getFurthest()!而且我无法发送,swefile因为这将使整个事情被读取,因此for循环中的迭代将停止,对吧?那么我怎样才能只发送已经读过的文本文件的一部分,getFurthest()同时仍然可以在其余部分之后迭代?

python text clone file

0
推荐指数
1
解决办法
4001
查看次数

ruby中的递归函数覆盖了克隆(object.dup)变量的嵌套属性

我有这样的哈希:

entity = {1=> nil, 2 => {3 => nil, 4 => 1}}
Run Code Online (Sandbox Code Playgroud)

我编写了一个函数,可以使用递归删除给定实体的空值.

def clear_null_values(entity)
   entity.each do |key, value|
     if value == nil || value.blank?
       entity.delete(key)
     elsif value.is_a? Hash
       clear_null_values(value)
       entity.delete(key) if value.blank?
     end
   end
end 
Run Code Online (Sandbox Code Playgroud)

而且我还需要原始实体以用于其他目的.所以我复制了哈希变量,然后清除了空值.

final_entity = entity.dup
clear_null_values(entity)
puts entity
puts final_entity
Run Code Online (Sandbox Code Playgroud)

结果:

{2 => {4 => 1}}
{1=> nil, 2 => {4 => 1}} # the nested values are overwritten.
Run Code Online (Sandbox Code Playgroud)

理想情况下,final_entity应与原始实体相同.

问题1:为什么entity.dup复制只是外部的?

问题2:如何使final_entity成为原始实体的完全副本,即使我们修改实体,那么final_entity也不应该改变?

ruby hash clone ruby-on-rails dup

0
推荐指数
1
解决办法
85
查看次数