gpt4 book ai didi

apache-flex - 我怎样才能让我的 AS3/Air 代码更好?

转载 作者:行者123 更新时间:2023-12-04 10:57:57 24 4
gpt4 key购买 nike

大家好,这是我的小弗兰肯斯坦代码,不要取笑它,它有效!
因此,您将表名和数据作为对象的关联数组传递。
我很确定这不是很好的代码,因为我还在学习 ActionScript。那么我可以改变什么,或者你们如何让它变得更好?

public function save(table:String,data:Object):void
{
var conn:SQLConnection = new SQLConnection();
var folder:File = File.applicationStorageDirectory;
var dbFile:File = folder.resolvePath("task.db");
conn.open(dbFile);

var stat:SQLStatement=new SQLStatement();
stat.sqlConnection=conn;

//make fields and values
var fields:String="";
var values:String="";
for(var sRole:String in data)
{
fields=fields+sRole+",:";
stat.parameters[":"+sRole]=data[sRole];
}
//trim off white space
var s:String=new String(fields);
var cleanString:String=s.slice( 0, -2 );

//over here we add : infront of the values I forget why
var find:RegExp=/:/g;
var mymyField:String=new String(cleanString.replace(find,""));
cleanString=":"+cleanString;

var SQLFields:String=mymyField;
var SQLValues:String=cleanString;

stat.text="INSERT INTO "+table+" ("+SQLFields+")VALUES("+SQLValues+")";

stat.execute();
}

最佳答案

老实说,构建查询的部分非常可怕。一半的代码删除了您之前添加的几行垃圾。这使得阅读和理解变得困难。这是代码质量差的标志。以下内容更短更简单:

        //make fields and values
var fields:Array = [];
for(var field:String in data) {
fields.push(field);
stat.parameters[":"+field]=data[fieldName];
}
var sqlFields:String = fields.join(",");
var sqlValues:String = ":"+fields.join(",:");

stat.text="INSERT INTO "+table+" ("+sqlFields+")VALUES("+sqlValues+")";

stat.execute();

关于apache-flex - 我怎样才能让我的 AS3/Air 代码更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3960460/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com