代码提示constant variable错误

自定义了一个函数如下:

def loopTables(dt, tm ,seqno, dfspath, tablename ,mutable tmCol ,mutable seqCol ){ 
	if(NULL == tmCol) tmCol = "tserial"
	if(NULL == seqCol) seqCol = "seqno"


	print("delete specific rows done!")
	
	dbs = "dfs:/"+getAllDBs().keys()
	for(dbpath in dbs){
		print(dbpath)
		tbls = getTables(database(dbpath))
		print(tbls)
		for(tablename in tbls){
			print(tablename)
			colNames = loadTable(dbpath, tablename).schema().colDefs.name
			if(in(tmCol, colNames) && in(seqCol, colNames)){
				print(dbpath + ":" + tablename + " begin delete ")
			}else{
				print("no need for delete " + dbpath + ":" + tablename)
			}
		}
	}
}

想法是,先遍历库,再遍历表,但是调用函数后报错:tbls => Can't assign an object to an existing constant variable.

但是把代码拉出来执行却没有问题,这是为什么?

请先 登录 后评论

1 个回答

Feng Gao

这个问题的原因是,输入的参数名称中有一个:tablename

在下面的遍历的时候,也使用了tablename

for(tablename in tbls){
			print(tablename)}

这是不允许的,当然我们的提示信息也有点不明确,关于这点,正在修复中,预计将在下个版本(2.00.9)中优化。

请先 登录 后评论
  • 1 关注
  • 0 收藏,738 浏览
  • dongmange 提出于 2022-12-16 13:55

相似问题