小编Jes*_*sse的帖子

属性默认值null是否与默认值相同?

因此,我可以安全地重构所有的实例

class Blah
{
    // ...
    private $foo = null;
    // ...
}
Run Code Online (Sandbox Code Playgroud)

class Blah
{
    // ...
    private $foo;
    // ...
}
Run Code Online (Sandbox Code Playgroud)

php null properties default-value

23
推荐指数
3
解决办法
6953
查看次数

Haskell懒惰的I/O和关闭文件

我编写了一个小的Haskell程序来打印当前目录中所有文件的MD5校验和(递归搜索).基本上是Haskell版本的md5deep.一切都很好,花花公子,除非当前目录有大量的文件,在这种情况下,我收到如下错误:

<program>: <currentFile>: openBinaryFile: resource exhausted (Too many open files)
Run Code Online (Sandbox Code Playgroud)

似乎Haskell的懒惰导致它不会关闭文件,即使在相应的输出行已经完成之后也是如此.

相关代码如下.感兴趣的功能是getList.

import qualified Data.ByteString.Lazy as BS

main :: IO ()
main = putStr . unlines =<< getList "."

getList :: FilePath -> IO [String]
getList p =
    let getFileLine path = liftM (\c -> (hex $ hash $ BS.unpack c) ++ " " ++ path) (BS.readFile path)
    in mapM getFileLine =<< getRecursiveContents p

hex :: [Word8] -> String
hex = concatMap (\x -> printf "%0.2x" …
Run Code Online (Sandbox Code Playgroud)

haskell lazy-evaluation

20
推荐指数
3
解决办法
5010
查看次数

jQuery stop(true,true)跳转到队列中所有动画的结尾

我一直在使用jQuery的stop(true, true)方法来清除正在运行的动画,以便下一个立即启动.我注意到第一个参数clearQueue清除了整个动画队列,但第二个参数jumpToEnd只跳转到当前运行动画的末尾,而不是从队列中删除的动画.有没有办法让它清晰并跳到所有排队动画的结尾?

我最终链接了几个stop(false, true)调用,但这只会处理3个排队的动画,例如.

$(this)
  .stop(false, true)
  .stop(false, true)
  .stop(false, true)
  .addClass('hover', 200);
Run Code Online (Sandbox Code Playgroud)

编辑:

stopAll根据Ates Goral的回答,我最终添加了自己的方法:

$.fn.extend({ stopAll: function () {
    while (this.queue().length > 0)
      this.stop(false, true);
    return this;
  } });
Run Code Online (Sandbox Code Playgroud)
$(this).stopAll().addClass('hover', 200);
Run Code Online (Sandbox Code Playgroud)

我希望其他人觉得这很有用.

javascript queue jquery animation

10
推荐指数
2
解决办法
8610
查看次数

Webpack使用先前构建步骤中的现有源映射

.ts编译的文件.js.js.map文件通过我的编辑和我捆绑.js使用的WebPack文件.(我不希望webpack负责编译,.ts因为错误将无法在编辑器中正确显示.)

如果我将已编译的.js文件提供给webpack,则它不会获取现有.js.map文件(通过//# sourceMappingURL=...每个文件),因此结果bundle.js.map指向.js文件,而不是原始.ts文件.

如何让webpack保留现有.js.map文件,以便结果bundle.js.map点回到原始.ts文件?

source-maps typescript webpack

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

页面两侧的不同背景颜色

我想创建一个固定宽度的布局,其中页面两侧的背景颜色不同,但无论您缩小多远,背景颜色都会从页面的任一侧无限延伸.

例如,我不是要创建一个9000x10像素的图像,其中任何一侧都有正确的颜色并将其平铺,因为只有在缩小到足以看不到背景图像边缘的情况下才能使用.

这可能吗?

谢谢!

编辑:

我应该指定,背景应该覆盖页面的整个高度,而不仅仅是窗口/视口的高度.

html css background tiling colors

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

在TypeScript模块中定义全局命名空间/变量

在TypeScript中,我可以定义一个全局/顶级命名空间,并在另一个文件中使用它,如下所示:

namespace foo.blah {
    export function baz() {
        console.log('hello');
    }
}
Run Code Online (Sandbox Code Playgroud)

在另一个文件中,这有效:

foo.blah.baz();
Run Code Online (Sandbox Code Playgroud)

但是,如果我然后从另一个模块导入一些东西:

import Thing from 'boo';

namespace foo.blah {
    export function baz() {
        console.log('hello');
    }
}
Run Code Online (Sandbox Code Playgroud)

突然,我的整个文件是一个模块,foo.blah命名空间是本地的,不是全局的,而foo.blah.baz()另一个文件中的调用失败.export namespace ...只是使命名空间成为模块导出的一部分,而不是全局.

有没有办法编写从其他模块导入但也定义全局/顶级符号的TypeScript文件?

目前我正在这样做:

import Thing from 'boo';
import * as $ from 'jquery';

namespace foo.blah {
    export function baz() {
        console.log('hello');
    }
}

$.extend(true, window, {foo});
Run Code Online (Sandbox Code Playgroud)

哪个有效,但TypeScript编译器仍然无法看到foo.blah...在其他文件中作为全局存在.

(该文件是Webpack的入口点,我正在尝试从Webpack包中的其他模块导入内容并将它们分配给全局变量,以便它们可以<script>在页面上的标记中使用.)

namespaces module global typescript webpack

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

如果没有死锁,则插入行

我有一张简单的桌子

CREATE TABLE test (
  col INT,
  data TEXT,
  KEY (col)
);
Run Code Online (Sandbox Code Playgroud)

和一个简单的交易

START TRANSACTION;

SELECT * FROM test WHERE col = 4 FOR UPDATE;

-- If no results, generate data and insert
INSERT INTO test SET col = 4, data = 'data';

COMMIT;
Run Code Online (Sandbox Code Playgroud)

我试图确保同时运行此事务的两个副本导致没有重复行和没有死锁.我也不想承担发电成本datacol = 4不止一次.

我试过了:

  1. SELECT ..(没有FOR UPDATELOCK IN SHARE MODE):

    两个事务都看到没有行col = 4(没有获取锁),并且生成data和插入行的两个副本col = 4.

  2. SELECT .. LOCK IN SHARE MODE …

mysql sql deadlock innodb mariadb

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

如何编写可用于多种语言的库?

我正在尝试编写一个可以从多种编程语言使用的库,例如:

  • CLR 语言(C#、F#..)
  • JVM 语言(Java、Kotlin、Scala..)
  • 原生语言(C/C++、Rust、Objective-C、Swift..)
  • JavaScript/TypeScript

我知道实现此目的的基本方法是用 C/C++ 编写它并为每种语言维护我自己的绑定,或者为每种语言维护库的单独副本(就像反应式扩展所做的那样)。不管怎样,对于n 种语言来说,这都是O(n)的工作。

是否有一种语言或工具可以用来以一种语言编写库并自动生成其他语言的绑定?

c# java language-binding cross-platform transpiler

5
推荐指数
0
解决办法
439
查看次数

跨浏览器版"all:initial"

我试图用来all: initial隔离页面中特殊"小部件"的CSS.问题是Safari和IE10及更早版本不支持该all属性,IE不支持该initial值.

有没有办法使用CSS或JavaScript模拟相同的行为?

例如,我想可以创建一个CSS类,它包含CSS规范定义的每个属性,并将它们设置为spec指定的初始值.那里有一个CSS类已经做到了吗?

如果我谷歌"CSS重置"我得到一堆样式表,专门用于规范用户代理样式表之间的差异,这是不同的all: initial.

html javascript css css-reset css3

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

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

声明式SQL模式迁移器

我可以找到的所有SQL数据库模式迁移工具都要求您将模式定义为一组离散的迁移步骤,这有效地构成了CREATE/ALTER/DROP语句序列.

我正在寻找一种工具,使我能够以声明方式而不是程序性地描述我的模式,即.作为一组CREATE TABLE语句或一些其他格式,迁移器将通过该格式检查实时数据库(例如,使用INFORMATION_SCHEMA表)并进行任何更改以使其与我所描述的模式匹配.

这样的工具存在吗?

谢谢

mysql sql database-migration

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