在Golang中有一种优雅的方式可以从像Python这样的数组中进行多项赋值吗?这是我正在尝试做的Python示例(拆分字符串然后将结果数组分配给两个变量).
python:
>>> a, b = "foo;bar".split(";")
Run Code Online (Sandbox Code Playgroud)
我目前的解决方案是:
x := strings.Split("foo;bar", ";")
a, b := x[0], x[1]
Run Code Online (Sandbox Code Playgroud)
我可以看到这在一些结构中变得混乱.我目前面临的一个实际例子是书签文件解析并分配给地图:
bookmark := make(map[string]string)
x := strings.Split("foo\thttps://bar", "\t")
name, link := x[0], x[1]
bookmark[name] = link
Run Code Online (Sandbox Code Playgroud)
现在我坐着一个无用的变量"x".我想做点什么:
bookmark := make(map[string]string)
name, line := strings.Split("foo\thttps://bar", "\t")
bookmark[name] = link
Run Code Online (Sandbox Code Playgroud)
但那是无效的.
我正在整理我的照片,并希望将它们调整到合理的范围.现在输入文件是小图像和大图像的混合,一些是风景,一些是塔.
我想将它们全部(高于阈值)调整为特定的百万像素大小,但到目前为止我发现的所有描述仅调整为固定大小/宽高比(例如1024x786)或固定百分比(例如50%).这些似乎都不适用于具有一些小图像(例如300x400)的文件夹和在3-12万像素范围内混合的图像.
我正在寻找一个宽高比独立选项,将它们全部放在同一个百万像素球场.有什么建议?
我正在使用HTML5进行浏览器内图像处理,并且在Firefox中使用文件API FileReader类的onload事件处理程序(在chrome上正常工作)有一个奇怪的问题:文件只在第二次选中时正确处理表格.
知道如何让Firefox第一次处理这个事件吗?
Ps:我正在使用Linux,也许这是相关的?
JSFiddle:https://jsfiddle.net/ow126vah/
码:
var fileInput = document.getElementById('fileInput');
var fileDisplayArea = document.getElementById('fileDisplayArea');
fileInput.addEventListener('change', function(e) {
var file = fileInput.files[0];
var imageType = /image.*/;
if (file.type.match(imageType)) {
var reader = new FileReader();
reader.onload = function(e) {
var ctx = fileDisplayArea.getContext("2d");
// create a new image from user selected file
var img = new Image();
img.src = reader.result;
// set canvas size to image size
fileDisplayArea.width = img.width;
fileDisplayArea.height = img.height;
// scale and draw image with offset …Run Code Online (Sandbox Code Playgroud)我在使用 QSqlQuery 时遇到问题:它没有更新我的 SQLite 数据库。
我像这样初始化数据库(工作正常):
myDB = QSqlDatabase::addDatabase("QSQLITE");
myDB.setDatabaseName(QDir::homePath() + QDir::separator() + "file.db");
myDB.open();
if(!myDB.tables().contains("presets")) {
myDB.exec("CREATE TABLE presets (id INTEGER PRIMARY KEY ASC, path TEXT);");
for (int i=0; i<10; i++)
myDB.exec("INSERT INTO presets (path) VALUES ('n/a')");
}
Run Code Online (Sandbox Code Playgroud)
我有一个 QString 值数组,我想更新到那里。
QString presets[10];
preset[0] = "foo";
preset[1] = "bar";
...
Run Code Online (Sandbox Code Playgroud)
我尝试使用这样的 for 循环更新数据库:
QSqlQuery qPreset(myDB);
qPreset.prepare("UPDATE presets SET path=':path' WHERE id=':id';");
for (int i=0; i<10; i++){
qPreset.bindValue(":path", presets[i]);
qPreset.bindValue(":id", i+1);
qPreset.exec();
}
Run Code Online (Sandbox Code Playgroud)
但是数据库中没有任何反应,我也没有收到任何错误消息。任何想法为什么?
编辑:
这(虽然丑陋)工作得很好,所以它不是连接:
for (int i=0; i<10; …Run Code Online (Sandbox Code Playgroud)