找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 131|回复: 4
打印 上一主题 下一主题

[已解决]请问怎么拷贝table的数据而不改变原table的数据呢

[复制链接]

102

主题

377

帖子

1158

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1158
跳转到指定楼层
1#
发表于 2016-1-25 13:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 361553894 于 2016-1-25 14:29 编辑

在使用newTable = oldTable后
发现对newTable进行操作后,oldTable也同样变化了
说明skill针对 newTable = oldTable  不是常规意义上的赋值,而是复制数据地址
也就是newTable完全等同于oldTable
怎样才能利用table内的数据,但是不改变原table的数据呢?(原数据需要针对不同情况进行调整,所以原始数据不能改变)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏1 支持!支持! 反对!反对!

57

主题

1857

帖子

7919

积分

六级会员(60)

Rank: 6Rank: 6

积分
7919
推荐
发表于 2016-1-25 14:02 | 只看该作者
本帖最后由 XYX365 于 2016-1-25 14:05 编辑
361553894 发表于 2016-1-25 13:58
我原本使用的table的array并不是数字,而是任意的字符串
也就是
lName = sprintf(nil "%.2f(%s)" wid ...

或是改成下面

foreach(sKey oldTable->?
        newTable[sKey] = copy(oldTable[sKey])
)

57

主题

1857

帖子

7919

积分

六级会员(60)

Rank: 6Rank: 6

积分
7919
推荐
发表于 2016-1-25 13:39 | 只看该作者
以下是我的方法:

;拷貝一份原來的值
for(xKey 1 length(oldTable)
        newTable[xKey] = copy(oldTable[xKey])
)

点评

lwx = makeTable("lwx" 0) foreach(lName lNames lwx[lName] = lwx[lName] + lw[lName]) 目前的做法  详情 回复 发表于 2016-1-25 14:25
我原本使用的table的array并不是数字,而是任意的字符串 也就是 lName = sprintf(nil "%.2f(%s)" width layer) lw[lName] = axlDBGetLength(seg) + lw[lName] 难道我需要把所有的lName记录下来?  详情 回复 发表于 2016-1-25 13:58

102

主题

377

帖子

1158

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1158
3#
 楼主| 发表于 2016-1-25 13:58 | 只看该作者
本帖最后由 361553894 于 2016-1-25 14:00 编辑
XYX365 发表于 2016-1-25 13:39
以下是我的方法:

;拷貝一份原來的值


我原本使用的table的array并不是数字,而是任意的字符串
也就是
lName = sprintf(nil "%.2f(%s)" width layer)
lw[lName] = axlDBGetLength(seg) + lw[lName]
难道我需要把所有的lName记录下来?

对不同的线宽和层面做长度的累加,遇到分支后分别累加长度

点评

或是改成下面 for(sKey 1 oldTabl->? newTable[sKey] = copy(oldTable[sKey]) )  详情 回复 发表于 2016-1-25 14:02

102

主题

377

帖子

1158

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1158
5#
 楼主| 发表于 2016-1-25 14:25 | 只看该作者
本帖最后由 361553894 于 2016-1-25 14:31 编辑
XYX365 发表于 2016-1-25 13:39
以下是我的方法:

;拷貝一份原來的值


lwx = makeTable("lwx" 0)
foreach(lName lw->? lwx[lName] = lwx[lName] + lw[lName])
目前的做法
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2025-2-21 00:45 , Processed in 0.060636 second(s), 38 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表