小编cow*_*cks的帖子

为什么你不能在 python 中对字节对象进行异或?

我想我了解 python 字节对象,但支持字节字符串的按位操作似乎是一个如此明显的功能。我不明白为什么它不受支持。

>>>'abcdefg'.encode('ascii')
b'abcdefg'
Run Code Online (Sandbox Code Playgroud)

好的。我从一个字符串变成了像我的字符串在 ascii 中的字节表示。

所以当我尝试:

>>> a = 'abcdefg'.encode('ascii')
>>> a ^ a
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for ^: 'bytes' and 'bytes'
Run Code Online (Sandbox Code Playgroud)

为什么?为什么python不支持这个?关于字节对象,我有什么不明白的地方使这不可行或不明确吗?

python byte bit-manipulation bytearray bitwise-xor

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

如何使用条件导入编写可在浏览器和 Node 中运行的 ESM 模块

我有一个应该在浏览器和节点中运行的代码库。它需要根据是否在节点或浏览器中运行来切换某些功能。

以前我以 CommonJS 格式编写模块。我有一个“shim”模块,我可以在其中测试环境的功能,并基于此导出内容。因此所有条件行为都包含在该填充文件中。

现在,我尝试创建“shim”ESM 模块。我不知道怎么办。某些切换行为取决于检查是否存在其他 ESM 模块。但是您只能在动态 ESM 导入中进行这样的测试,这是异步的。因为export语句必须位于顶层,所以我无法导出结果,除非顶层等待可用。但这在浏览器中不可用。

在我当前的黑客中,我导出一个类似延迟的对象,并await在需要的地方使用它。但这却让我陷入了很多不必要的束缚(async()=>{...})

那么我该怎么做呢?

我不想使用捆绑器,我的浏览器目标保证是相当新的。

javascript commonjs node.js es6-modules

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

使用 Go 检查 sqlite db 中是否存在值

我正在编写代码来使用 Go 管理 sqlite 数据库中的用户。

我正在尝试检查用户名是否被占用,但我的代码很难看。

我的桌子看起来像:

    id INTEGER PRIMARY KEY AUTOINCREMENT,
    username TEXT UNIQUE,
    password TEXT
Run Code Online (Sandbox Code Playgroud)

我检查用户名是否被用于:

func UserExists(db * sql.DB, username string) bool {
    sqlStmt := `SELECT username FROM userinfo WHERE username = ?`
    count := 0
    rows, err := db.Query(sqlStmt, username)
    Check(err)
    for rows.Next() {  // Can I just check if rows is non-zero somehow?
        count++
    }
    return len(rows) != 0
}
Run Code Online (Sandbox Code Playgroud)

是否有更好的查询我可以使用它会以更直接的方式告诉我表中是否存在用户名值?或者有没有更好的方法来检查是否rows非零?

sql sqlite go

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