小编Unb*_*ess的帖子

会议室数据库迁移失败:ALTER TABLE添加多个列

我通过提供从3到4的迁移将数据库从版本3升级到版本4。

这是我的迁移代码:

private static Migration MIGRATION_3_4 = new Migration(3, 4) {
    @Override
    public void migrate(@NonNull SupportSQLiteDatabase database) {
      database.execSQL("ALTER TABLE caption_table ADD COLUMN localVideoUrl TEXT;");
      database.execSQL("ALTER TABLE caption_table ADD COLUMN postType TEXT");
      database.execSQL("ALTER TABLE caption_table ADD COLUMN videoUrl TEXT");
    }
};
Run Code Online (Sandbox Code Playgroud)

这是创建会议室数据库的代码

this.mAppDataBase = Room.databaseBuilder(getApplicationContext(), AppDataBase.class, "my_db")
                        .addMigrations(MIGRATION_2_3, MIGRATION_3_4)
                        .build();
Run Code Online (Sandbox Code Playgroud)

这是我在PostModel上添加的代码

@Expose
private String postType;

@Expose
private String videoUrl;

@Expose
private String localVideoUrl;

public String getPostType() {
    return postType;
}

public void setPostType(String postType) {
    this.postType = postType;
}

public …
Run Code Online (Sandbox Code Playgroud)

sqlite android-sqlite android-room

9
推荐指数
1
解决办法
887
查看次数

Windows Powershell 和 VSCode 集成 Powershell 的 $env:PATH 不同

我使用的是 Windows 10。Windows Powershell 和 VSCode 集成 Powershell 的结果$env:PATH不同。我需要 VSCode 集成的 Powershell 与 Windows Powershell 具有相同的路径,我应该如何纠正这个问题?

powershell visual-studio-code

9
推荐指数
2
解决办法
3781
查看次数

Python 中何时使用生成器函数以及何时使用循环

我有 Matlab 背景,我发现很难在 Python 中理解生成器的概念。

有人可以回答我以下问题吗:

  1. 生成器函数和循环之间的区别
  2. 每一项何时应实施

python iterator loops generator

8
推荐指数
1
解决办法
3892
查看次数

为什么不同的字符串在 Python 中具有相同的 ID?

据说字符串是不可变的对象,当我们对该变量进行更改时,它实际上会创建一个新的字符串对象。

所以我想用这段代码来测试这个现象:

result_str = ""

print("string 1 (unedited):", id(result_str))

for a in range(1,11):
    result_str = result_str + str(a)
    print(f"string {a+1}:", id(result_str))
Run Code Online (Sandbox Code Playgroud)

我得到了以下 ID:

string 1 (unedited): 2386354993840
string 2: 2386357170336
string 3: 2386357170336
string 4: 2386357170336
string 5: 2386357170336
string 6: 2386357170336
string 7: 2386357170336
string 8: 2386357170336
string 9: 2386360410800
string 10: 2386360410800
string 11: 2386360410800
Run Code Online (Sandbox Code Playgroud)

那么,如果每个字符串彼此不同,那么为什么字符串 2-8 和 9-11 具有相同的 ID?而且,如果以某种方式解释了这个问题,为什么 ID 会在字符串 9 处发生变化?

python

8
推荐指数
1
解决办法
819
查看次数

Android 将应用程序注册为 LiveData 中的上下文

我正在尝试向观察者注册应用程序,但收到以下消息:

要求:'android.arch.lifecycle.LifecycleOwner

有任何想法吗?

public class CompanyMV extends AndroidViewModel{

public CompanyMV(Application application) {

    super(application);
    repo.getNumbers(this.ID).observe(application, new Observer<Integer>() {
        @Override
        public void onChanged(@Nullable Integer number) {

        }
    });

}
Run Code Online (Sandbox Code Playgroud)

android observable android-livedata

7
推荐指数
1
解决办法
1541
查看次数

在MATLAB中为更大的矢量索引

我试图在较大的一个中找到较小向量的索引位置.

我已经使用strfind和解决了这个问题bind2dec,但是我不想使用strfind,我根本不想转换为字符串或deciamls.

鉴于矢量较长

a=[1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,0,0,1,1];
Run Code Online (Sandbox Code Playgroud)

我想在a里找到较小的向量 b 的索引

b=[1,1,1,0,0,0];
Run Code Online (Sandbox Code Playgroud)

我希望找到结果:

result=[15,16,17,18,19,20];
Run Code Online (Sandbox Code Playgroud)

谢谢

matlab

7
推荐指数
2
解决办法
231
查看次数

为什么我不能在AWS Batch C ++ SDK中为多节点并行作业覆盖容器变量?

我正在使用AWS Batch。我的目标是通过适用于C ++的AWS开发工具包创建一个多节点并行作业。为此,我按照此处的说明创建了工作定义。

我正在使用AWS C ++ SDK,并且注意到当我尝试覆盖环境变量或命令时,实际上什么都没有转移到作业中。

有趣的是,对于使用常规作业定义(而不是多节点作业)的作业,相同的代码可以很好地工作:

#include <aws/batch/BatchClient.h>
#include <aws/batch/model/ContainerOverrides.h>
#include <aws/batch/model/KeyValuePair.h>
#include <aws/batch/model/SubmitJobRequest.h>
#include <aws/core/Aws.h>
#include <aws/core/utils/Outcome.h>

int main(void)
{
    Aws::SDKOptions options;
    Aws::InitAPI(options);

    Aws::Batch::BatchClient batchClient;
    Aws::Batch::Model::SubmitJobRequest submitJobRequest;
    Aws::Batch::Model::SubmitJobOutcome submitJobOutcome;
    Aws::Batch::Model::ContainerOverrides containerOverrides;
    Aws::Batch::Model::KeyValuePair envVariable;

    envVariable.SetName("foo");
    envVariable.SetValue("bar");

    containerOverrides.AddEnvironment(envVariable); // This does nothing for a multi-node job definition.
    containerOverrides.AddCommand("foobarbaz"); // This does nothing for a multi-node job definition.

    submitJobRequest.SetJobName("myjob");
    submitJobRequest.SetJobDefinition("arn:aws:...."); // This string is an example. I have used the actual job definition ARN.
    submitJobRequest.SetJobQueue("arn:aws:...."); // This string …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-sdk aws-batch aws-sdk-cpp

7
推荐指数
1
解决办法
215
查看次数

AWS:将字符串转换为区域

我不想硬编码区域 ID 并将区域名称作为字符串从命令行传递。有没有办法做到这一点?硬编码:

Region s3Region = Region.getRegion(Regions.US_EAST_1); 
Non Hardcoded but not working:
Region s3Region = Region.getRegion(Regions.fromName(awsRegion));
Run Code Online (Sandbox Code Playgroud)

java amazon-ec2 amazon-web-services aws-sdk

5
推荐指数
1
解决办法
3228
查看次数

正则表达式从nuget包文件名解析包名和版本号

我有一个我从nuget.org下载的nuget包目录.我正在尝试创建一个正则表达式来解析文件名中的包名称和版本号.乍一看似乎并不困难; 文件名有一个清晰的模式:

{PACKAGENAME}.{VERSIONNUMBER} .nupkg

边缘情况使其具有挑战性.

  • 包名称可以包含破折号,下划线和数字
  • 包名称可以有效地由点分隔的无限制部分
  • 版本号由3-4组数字组成,分隔点
  • 版本号有时以预发布标签为后缀(-alpha,-beta等)

这是nuget包文件名的示例列表:

knockoutjs.3.4.2.nupkg
log4net.2.0.8.nupkg
runtime.tizen.4.0.0-armel.microsoft.netcore.jit.2.0.0.nupkg
nuget.core.2.7.0-alpha.nupkg
microsoft.identitymodel.6.1.7600.16394.nupkg
Run Code Online (Sandbox Code Playgroud)

我希望能够在严肃文本编辑器中进行搜索/替换,其中搜索是具有两个组的正则表达式,一个用于包名称,一个用于版本号.输出应为"Package:\ 1 Version:\ 2".使用上面的5个包,输出应该是:

Package: knockoutjs Version: 3.4.2
Package: log4net Version: 2.0.8
Package: runtime.tizen.4.0.0-armel.microsoft.netcore.jit Version: 2.0.0
Package: nuget.core Version: 2.7.0-alpha
Package: microsoft.identitymodel Version: 6.1.7600.16394
Run Code Online (Sandbox Code Playgroud)

我提出的最接近相对简洁的正则表达式是:

^([^\s]*)\.((?:[0-9]+\.){3,})nupkg$
Run Code Online (Sandbox Code Playgroud)

...导致以下输出:

Package: knockoutjs Version: 3.4.2.
Package: log4net Version: 2.0.8.
Package: runtime.tizen.4.0.0-armel.microsoft.netcore.jit Version: 2.0.0.
nuget.core.2.7.0-alpha.nupkg
Package: microsoft.identitymodel.6 Version: 1.7600.16394.
Run Code Online (Sandbox Code Playgroud)

虽然我不想要那个尾随点,但是它可以很好地处理前三个.它在第四个上甚至不匹配,第五个版本号的第一部分与包名称混为一致.

保存一天!

regex nuget nuget-package

5
推荐指数
1
解决办法
743
查看次数

Git:将单个文件恢复到上次提交

我想将文件恢复到上次提交时的状态。

我修改、添加并提交了其他文件。但有一个文件我没有暂存。

我想将其状态(仅该文件的状态)恢复到该文件提交的最后一次提交。

换句话说,我只想忽略对该文件所做的最后更改并将其恢复到它参与提交的最后一点。

git

5
推荐指数
1
解决办法
9514
查看次数