小编LeG*_*GEC的帖子

你能暗示数组的项目类型吗?

这个问题是与这一个:

是否可以提示返回数组中的项类型?

例如:

/**
 *  MyFunction does a lot of things
 *
 * @param TClass1 $var1
 * @param TClass2 $var2
 * @return array[TClass3] //<- I'm trying to express this
 */
 function MyFunction( $var1, $var2 ){
   ...
Run Code Online (Sandbox Code Playgroud)

我使用NetBeans作为IDE,它(像许多其他PHP IDE一样)利用上面函数的doc bloc来确定返回值的类型.

如果我能解释数组中预期的类型,我希望IDE能够为以下情况提供正确的完成:

  $myTab = MyFunction( $foo, $bar );
  foreach( $myTab as $itm ){
    $itm->myFi| //offer the completion for a TClass3 object
  }
Run Code Online (Sandbox Code Playgroud)

php netbeans phpdoc return-value type-hinting

34
推荐指数
1
解决办法
6869
查看次数

是否有时间戳的 max 函数(带或不带时区)?

当我调用max两个时间戳时,出现错误:

select max(now()::timestamp, to_timestamp('2021-01-01', 'YYYY-MM-DD')::timestamp);
-- ERROR:  function max(timestamp without time zone, timestamp without time zone) does not exist
Run Code Online (Sandbox Code Playgroud)

我的实际用法是在 upsert 查询中,我想在其中写:

INSERT ...
ON CONFLICT (pk) DO UPDATE SET
  ts = max(table.ts, excluded.ts)
Run Code Online (Sandbox Code Playgroud)

问题

有没有一种惯用的方法来获取 PostgreSQL 中两个时间戳之间的最大值?

postgresql

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

http Request.FormFile:处理zip文件?

我正在写一个web服务器.

在其中一个页面上,用户可以上传文件.

我希望能够处理zip文件.

archive/zip包中,我只看到两个允许我从zip存档中读取的函数:

  1. func OpenReader(name string) (*ReadCloser, error)
  2. func NewReader(r io.ReaderAt, size int64) (*Reader, error)

我想避免从磁盘写入和读回,
如果我想使用第二个函数,我需要在调用函数之前知道上传文件的大小.

我将把问题分成两部分:

  1. 阅读通过标准multipart/form-datahtml表单上传的zip文件的解压缩内容的惯用方法是什么?

  2. 如何获取通过html表单上传的文件的实际大小?

    func(req *http.Request) {
        f, h, err := req.FormFile("fileTag")
        if err != nil {
             panic(err)
        }
        var fileSize int = ??
    
        unzipper, err := zip.NewReader(f, fileSize)
    }
    
    Run Code Online (Sandbox Code Playgroud)

go

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

从 C# 中的 DirectoryOperationException 获取信息

我们有一个 C# 项目,它与 Active Directory 服务交互。

对于上下文:我们使用 System.DirectoryServices.Protocols 命名空间中的对象,即:

  • LdapConnection 连接到服务器
  • SearchRequest 扫描条目
  • DirSyncRequestControl 在 SearchRequest 上使用 DirSync 功能

我们在理解触发 DirectoryOperationException 的错误时陷入了困境,然后才意识到错误的描述未包含在 中exception.Message,而是进一步嵌套在异常对象中。

我们过去在捕获此类错误时有一个非常简单的异常日志记录:

catch (DirectoryOperationError de) {
    log("ERROR directory error {0} : {1}", de.GetType(), de.Message);
    throw;
}
Run Code Online (Sandbox Code Playgroud)

我们现在有以下代码:

catch (DirectoryOperationException de)
{
    log("ERROR directory error {0} : {1}", de.GetType(), de.Message);

    var resp = de.Response;
    if (resp == null)
    {
        log("          -- no response object linked to exception --");
        throw;
    }

    log("ERROR     directoryresponse error message:'{0}'", resp.ErrorMessage);

    int errorCode; …
Run Code Online (Sandbox Code Playgroud)

c# exception active-directory

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

打字稿:从命令行触发“ organizeImports”

VSCode具有编辑器功能,可在保存("source.organizeImports": true)时清理和排序javascript和打字稿文件中的导入。

如何从命令行在文件上调用此操作?

就像是 :

tslint --fix [apply ordered-imports rule] file1 file2
Run Code Online (Sandbox Code Playgroud)

但是tslint似乎对“有序导入”有自己的实现

我到目前为止收集的

据我了解,此功能会触发organizeImportsTypescript的代码库中的函数的调用。

这种功能是打字稿语言服务的一部分,但我不知道如何启动语言服务守护程序以及如何与之交互。

由于代码是用该函数编写的,因此也可能有一种从ts脚本同步调用它的方法,但是我找不到如何从头开始设置对象和变量以将其馈送到该函数的示例。

javascript typescript

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

Git rebase 功能分支在向开发/主分支的拉取请求中弄乱了提交

我有以下场景:

  • 主分支:生产中的内容,可以包含修补程序
  • Develop-branch:我的开发人员用来创建拉取请求的分支
  • 功能分支:我们为开发人员正在实现的功能创建的分支。

开发人员完成工作后,他会在开发分支上创建拉取请求。批准后,我们​​将功能分支压缩合并到开发分支,以便不包括开发人员在功能分支上所做的所有提交。这使我们能够在开发分支上拥有清晰干净的 git 历史记录。

有时功能分支需要从 develop 分支变基,这就是麻烦的开始。

如何避免这种情况,以便 PR 仅包含来自功能分支的实际提交?

git git-merge git-rebase feature-branch git-squash

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

MySQL中的UTF8字符串比较

我们在MySQL 5中有关于案例和重音的utf8字符串比较问题:

根据我收集的内容,MySQL通过考虑"字符组应该被视为相等"来实现排序规则.

例如,在utf8_unicode_ci整理中,所有字母"EÉÈÊeéèê"都在同一个框中(与"e"的其他变体一起).

所以如果你有一个包含["video","vidéo","vidÉo","vidÊo","vidêo","vidÈo","vidèo","vidEo"]的表(在用ut8_general_ci整理声明的varchar列中) :

  • 当要求MySQL根据此列对行进行排序时,排序是随机的(MySQL不会强制执行"é"和"É"之间的排序规则),
  • 当要求MySQL在此列上添加唯一键时,它会引发错误,因为它认为所有值都相等.

我们可以用什么设置来解决这两点?

PS:在相关的说明中,我没有看到utf8字符集的任何区分大小写的排序规则.我错过了什么 ?


[编辑]我认为我最初的问题仍然有一些兴趣,我将保留原样(也许有一天会得到肯定的回答).

然而,事实证明,我们关于重音符号字符串比较的问题与我们的文本列的排序规则无关.character_set_client在与MySQL交谈时,它与参数的配置问题相关联- 默认为latin1.

这篇文章向我们解释了这一切,并允许我们解决问题:

走出MySQL角色地狱

它很冗长,但相信我,你需要这个长度来解释问题和解决方案.

mysql collation case-sensitive

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

"阻止此页面创建其他对话框"的规则

我尝试了解Firefox在对话框中添加的"阻止此页面创建其他对话框"的行为.

使用jquery,如果我添加以下侦听器:

//html
<input class="testInput" />

//javascript
$('.testInput')
.click(function(){ alert('clicked') })
.keyup(function(){ alert('keyup') })
Run Code Online (Sandbox Code Playgroud)
  1. 单击输入时,警报框会正常显示,直到第13次.
  2. 另一方面,当敲击一个键时,第二个消息框已经出现,并显示消息"阻止此页面创建其他对话框".实际上,似乎有一些tiemout,如果我在两次击键之间等待2秒,则消息消失.

从我的非正式测试中,2.只要在onclick回调中没有调用警报框(例如:keyup回调,显示响应ajax动作的警告框......),实际应用.

我在Ubuntu下使用Firefox 9.0.1,据我所知,我没有调整firefox关于这些阈值的设置.我想任何浏览器的任何最新版本都会发生这种情况.

我正在使用jQuery库,但我不认为它在这里是相关的.

我的问题是:这个警告出现在对话框中的确切规则是什么?

[编辑]

使用Chromium/Ubuntu(版本17.0.963.26),阈值似乎只是两个对话框之间的延迟.

你可以在这里从jsfiddle测试这个(thx Rory McCrossan)

javascript firefox jquery

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

在“ export-subst”文件中添加标签

情况

我们有一个git工作流程,其中所有发行版本都存储在master分支上,并且当准备好提交可以部署时,我们向其添加标签,然后用于git archive构建要部署的捆绑包。

我们使用带有选项version.txt标记的文件来跟踪用于构建给定存档的提交。.gitattributesexport-subst

如果我写$Format:%d$version.txt,和导出标签的提交,我会像(HEAD, tag, master)写生成的文件英寸

我怎么能tag独自一人?

[edit]有一个git命令已经产生了:

git describe --tags HEAD
Run Code Online (Sandbox Code Playgroud)

这将输出:

latest_tag            #if HEAD is tagged

latest_tag-5-g03cc91b #if HEAD is not tagged,
                      #and the latest tag is 5 commits ago on commit g03cc91b
Run Code Online (Sandbox Code Playgroud)

有什么方法可以用此输出替换段塞version.txt吗?

git

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

索引是否有更新?

我手头没有特定的问题,但是在过去的某些情况下,我偶然遇到了意外破坏索引的情况,希望我可以返回给定文件的先前状态,该状态在某个时刻被索引了。

一些示例情况是:

$ git add <file>
# find out that I already had an indexed version of <file>,
# and that for some reason I shouldn't have added the extra modifications

$ git stash pop
# find out afterwards that I have a mix of "the index I had"
# and "the index in the stash"

$ git stash
# with an active index, which is now mixed with the state of the working tree

$ git reset <typo>
# …
Run Code Online (Sandbox Code Playgroud)

git git-index git-reflog

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