小编Bar*_*ski的帖子

解包1变量,休息到列表

我想知道这是否可能:

def someFunction():
    return list(range(5))
first, rest = someFunction()

print(first) # 0
print(rest) # [1,2,3,4]
Run Code Online (Sandbox Code Playgroud)

我知道可以通过以下3行完成:

result = someFunction()
first = result[0]
rest = result[1:]
Run Code Online (Sandbox Code Playgroud)

python iterable-unpacking

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

switch语句可以有多个变量吗?

问题基于所有使用switch块的语言(C++,C#PHP,Java,Python等).那么有可能有这样的东西吗?

switch (var1, var2)
case  var1 = a:
    something
    break;
case var2 = b:
    something
    break;
case var1 = 0 ,var2 = 1
     etc...
Run Code Online (Sandbox Code Playgroud)

php c# python java switch-statement

6
推荐指数
2
解决办法
1549
查看次数

未找到类[org.apache.derby.jdbc.ClientDriver].尝试连接到db时

我在Netbeans中建立了一个项目,创建了一个脚本,用javadb建立了一个新的数据库.我可以通过gui连接到它 - 显示表内容等,但当我运行一个应用程序时:

 EntityManager em = Persistence.createEntityManagerFactory("lab5PU").createEntityManager();
Run Code Online (Sandbox Code Playgroud)

我得到这个很长的例外:

[EL Info]: 2013-04-05 21:40:45.554--ServerSession(1198260109)--EclipseLink, version: Eclipse Persistence Services - 2.3.0.v20110604-r9504
[EL Severe]: 2013-04-05 21:40:45.574--ServerSession(1198260109)--Local Exception Stack: 
Exception [EclipseLink-4003] (Eclipse Persistence Services - 2.3.0.v20110604-r9504): org.eclipse.persistence.exceptions.DatabaseException
Exception in thread "AWT-EventQueue-0" javax.persistence.PersistenceException: Exception [EclipseLink-4003] (Eclipse Persistence Services - 2.3.0.v20110604-r9504): org.eclipse.persistence.exceptions.DatabaseException
Exception Description: Configuration error.  Class [org.apache.derby.jdbc.ClientDriver] not found.
Exception Description: Configuration error.  Class [org.apache.derby.jdbc.ClientDriver] not found.
    at org.eclipse.persistence.exceptions.DatabaseException.configurationErrorClassNotFound(DatabaseException.java:82)
Run Code Online (Sandbox Code Playgroud)

我可以在服务的驱动程序部分看到javadb驱动程序,所以我不知道错误是什么.

编辑:persistance.xml按要求:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
  <persistence-unit name="lab5PU" transaction-type="RESOURCE_LOCAL">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <class>lab5.Colleagues</class>
    <properties> …
Run Code Online (Sandbox Code Playgroud)

java database netbeans javadb

6
推荐指数
1
解决办法
3万
查看次数

传递字符数组作为参数(C内核代码)

我正在尝试使用我的打印功能在屏幕上打印一些东西.

我偶然发现了一个小问题 - 当我像这样传递字符数组时:

char s[] = "abc";
print(s);
Run Code Online (Sandbox Code Playgroud)

它工作正常,但当我这样称呼它没有效果.

print("abc");
Run Code Online (Sandbox Code Playgroud)

这是我的功能声明

//print function 
void print(char* message);
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?printf以相同的方式工作,您可以通过第二种方式传递字符串.

编辑:

定义

void print_at(char* message, int col, int row){
    if(col >= 0 && row >= 0){
        set_cursor(get_screen_offset(col,row));
    }
    int i = 0;
    while(message[i] != 0){
        print_char(message[i++],-1,-1,WHITE_ON_BLACK);
    }
}
void print(char* message){
    print_at(message, -1,-1);
}
Run Code Online (Sandbox Code Playgroud)

EDIT2:kernel.o的objdump

void start(){
    clear_screen();
    char s[] = "abc";
    print("abc");
    print(s);
    while(1);
}
Run Code Online (Sandbox Code Playgroud)

反汇编.text:

00000000 <_start>:
   0:   55                      push   ebp
   1:   89 e5                   mov    ebp,esp
   3:   83 ec 28 …
Run Code Online (Sandbox Code Playgroud)

c arrays string kernel

6
推荐指数
1
解决办法
667
查看次数

全局指针是否初始化为零?

我想知道cpp标准关于全局初始化的内容.我发现这个答案很有帮助,但没有提到指针类型.

有保证这会有效吗?

char* myptr
int main()
{
    if (myptr == NULL)
    {
        std::cout << "All good!" << std::endl;
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ pointers global-variables

5
推荐指数
2
解决办法
1378
查看次数

带有 .npmrc 和身份验证的纱线

我遇到了一个我不确定如何以最佳方式解决的问题。这里是:

我们最近开始使用私有 NPM 包,并试图找出如何将我们的本地开发循环与 CI 和部署管道联系起来。

我已经查看并开始利用 NPM_TOKEN 变量。在 CI 中,我们正在执行以下操作:

echo "//registry.yarnpkg.com/:_authToken=$NPM_TOKEN" >> ~/.npmrc
Run Code Online (Sandbox Code Playgroud)

这很有效,但在 Heroku 上部署期间,我们无法访问 home。所以为了让它在 Heroku 上工作,我们在项目目录中添加了一个 .npmrc 文件。这很有效,因为 npm 使用环境变量来填充它。

问题是在本地,所有纱线命令都因缺少变量而失败。NPM 网站 ( https://blog.npmjs.org/post/118393368555/deploying-with-npm-private-modules )上的建议方法是将令牌添加到 .profile 中的环境中。这似乎不是最好的解决方案,因为该设置现在是全局的,并且应该保存在每个存储库中。

我在这里发现了一个使用 npm 的类似问题,但它似乎不适用于纱线。 在 .npmrc 中使用身份验证令牌 那里 的注释还提到它不适用于 npm,并且没有提到 dotenv 文件的文档。

有没有更好的方法来处理这个问题?似乎是一个很早就应该解决的常见问题......

authentication node.js npm yarnpkg

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

忽略git log -p中的文件

我正在尝试总结我在项目上的工作.问题是我不想在输出中包含测试文件git log --patch.

这些文件位于一个名为的目录中mtest; 但是,该文件夹还包含我想要显示的测试套件代码.测试文件,我想排除,有扩展mscxxml,所以我想基于该过滤器的工作.

我已经看过使'git log'忽略某些路径的更改,但这看起来像是排除了修改文件而不是简单地排除文件的提交.

有没有办法做到这一点?

我已经尝试了Jubobs的答案,它看起来很有效,但令人惊讶的是,即使有过滤器,也会出现2个文件.

我用这个小存储库复制了这个:

mkdir test
cd test
git init
echo 'readme' > README
git add .
git commit -m "Initial commit"

mkdir test2
cd test2
echo 't1' > test1.cpp
echo 't2' > test2.xml
git add .
git commit -m "c2"

echo 't3' > test3.cpp
echo 't4' > test4.xml
git add .
git commit -m "c3"
Run Code Online (Sandbox Code Playgroud)

我注意到创建目录时不会过滤文件.我尝试了以下命令:

git log --patch -- . ":(exclude)**/*.xml"
Run Code Online (Sandbox Code Playgroud)

这导致包含 …

git git-log

4
推荐指数
1
解决办法
1833
查看次数

控制台编写,删除字符

我的问题是在控制台中删除已写入的字符.有办法吗?让我说我给控制台写了10个空格.我可以删除一些为其他字符腾出空间而不输出10个字符吗?我使用了一个特殊的库,带有在控制台中写入的功能等.

c++ console-application

3
推荐指数
1
解决办法
9715
查看次数

如何引用二维数组中的对象?

我读到你可以通过这一行声明对象的aray

Enemy * d = new Enemy[2];
Run Code Online (Sandbox Code Playgroud)

但是当我试图制作一个二维数组时,出现了一个无法初始化的错误.我也尝试过这个

Enemy *enemies[6][2];
Run Code Online (Sandbox Code Playgroud)

但我不知道如何引用该数组中的每个对象,以及如何将该引用传递给函数.

c++ oop reference multidimensional-array

3
推荐指数
1
解决办法
6279
查看次数

Windows 上的 SDL 2 无法与音频设备配合使用

我似乎发现为 mingw 和 Visual Studio 编译的 SDL 库之间存在错误。

我尝试使用以下代码打开音频设备:

#include <SDL.h>
#include <stdio.h>
int main(int argc, char **argv)
{
    if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER)) {
        exit(1);
    }

    SDL_AudioSpec wanted_spec, spec;

    wanted_spec.channels = 2;
    wanted_spec.freq = 44100;
    wanted_spec.format = AUDIO_S16SYS;
    wanted_spec.silence = 0;
    wanted_spec.samples = 2048;
    wanted_spec.callback = 0;
    //wanted_spec.userdata = opaque;
    while (SDL_OpenAudio(&wanted_spec, &spec) < 0) {
        printf("error cant open audio");
    }
    if (spec.format != AUDIO_S16SYS) {
        printf("error wrong format");
        return -1;
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

通过 MSVS 编译此文件时,我收到“错误格式错误” …

c++ sdl-2

3
推荐指数
1
解决办法
1249
查看次数