小编Dan*_*kov的帖子

Lambda引用字段

我想知道如何获得lambda对字段的引用.我不想使用方法,因为我的字段是公共最终的.我怀疑这是不可能的,但我没有看到明显的陈述.

class A {
   public final String id;
   ...
}

Map<String, A> f(List<A> l) {
   return l.stream().collect(Collectors.toMap(A::id, Function.identity()));
}
Run Code Online (Sandbox Code Playgroud)

java lambda java-8

35
推荐指数
2
解决办法
9411
查看次数

如何在gradle中下载依赖项

我有一个自定义编译任务.

task compileSpeedTest(type: JavaCompile) {
    classpath = files('build')
    source = fileTree('src/test/java/speed')
    destinationDir = file('bin')
}
Run Code Online (Sandbox Code Playgroud)

Gradle在执行之前不会尝试下载依赖项.我找不到一个任务名称,它将它添加到列表dependsOn上.

gradle

32
推荐指数
7
解决办法
9万
查看次数

"PT"前缀在持续时间中代表什么?

我正在尝试使用Duration该类而不是long.它具有优越的文字语法.我喜欢它的灵活性,虽然它看起来很奇怪.

"PT10S"意味着10秒,接受"10秒"的问题是什么?!好的没关系.

我只是好奇为什么选择了PT前缀(不是"DU"例如)以及为什么任何前缀在这里更好而不是什么?

java duration iso8601 period java-time

11
推荐指数
3
解决办法
6609
查看次数

如何找到提供导入的库?

我加入了一个项目。代码库对我来说是新的。我对在代码库中使用的模块感兴趣,它是从依赖项导入的。该模块未在项目中定义。

是否有一种自动/简单的方法来确定哪个库提供了我感兴趣的模块?

许多依赖项是专有的,hoogle 无法帮助我解决这个问题。

haskell cabal haskell-stack

10
推荐指数
1
解决办法
138
查看次数

如何使括号免受异步异常的影响?

每一篇关于异常的 Haskell 文章都重复简单的模式:使用括号函数来分配/释放资源,你会很安全。

我有一个问题,因为我测试了它的行为并检测到线程在发布部分工作时可能会出现异步异常。

import Control.Exception
import Control.Concurrent

main = do
  tid <- forkIO myThread
  threadDelay 100000
  throwTo tid StackOverflow
  threadDelay 1000000

myThread = 
  bracket 
    (putStrLn "NEW")
    (\() -> threadDelay 500000 >> putStrLn "CLEAN")
    (\() -> putStrLn "USE")
Run Code Online (Sandbox Code Playgroud)

在上面的代码段中,由于异步异常,“CLEAN”未打印 - 所以资源泄漏!怎样才能称得上安全?

我不知道一切,这一定是一个原因。为了确保安全,我需要将每次清洁都包裹在面罩内。它看起来很笨拙。

concurrency haskell asynchronous exception

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

如何定义包含String的可复制结构?

我有这样的结构

#[derive(Copy, Clone)]
enum Command {
    Quit,
    Error { msg: String },
}
Run Code Online (Sandbox Code Playgroud)

编译器抱怨它无法为其生成复制构造函数Error.

我需要使struct可复制以将通道传递给另一个线程.

error: the trait `Copy` may not be implemented for this type; variant `Error` does not implement `Copy` [E0205]
#[derive(Copy, Clone)]
^~~~~~~~~~~~~~~~~~~~~~
note: in this expansion of #[derive_Copy] (defined in src/main.rs)
Run Code Online (Sandbox Code Playgroud)

它编译如果msgi32.看起来很奇怪,这种基本类型String是不可复制的.

rust

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

为什么Method对象的多个实例用于继承的方法

我发现使用默认equals方法的类具有不同的元对象Method实例.为什么会这样?乍一看它看起来不是最佳的,因为方法对象是不可变的.

class X {}
Method defaultM = Object.class.getMethod("equals", Object.class)
Method xMethod =  X.class.getMethod("equals", Object.class)

xMethod != defaultM
xMethod.equals(defaultM)
Run Code Online (Sandbox Code Playgroud)

java reflection jvm

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

如何在 Haskell 中映射具有多个约束的存在?

我弄清楚了如何处理受单个类约束的异构类型列表:

\n
data Ex c = forall a. (c a) => Ex a\n\nforEx :: [Ex c] -> (forall a. c a => a -> b) -> [b] \nforEx [] _ = [] \nforEx (Ex a:r) f = f a : forEx r f\n\n> forEx @Show [Ex 3, Ex (), Ex True] show\n["3","()","True"]\n
Run Code Online (Sandbox Code Playgroud)\n

看起来不错,但在现实生活中,与 show 函数相比,它会更复杂,依赖于 1 个以上的约束。\n进一步类推是行不通的:

\n

尝试1:

\n
forEx @(Show, Eq) [Ex 3, Ex (), Ex True] show\n\n<interactive>:85:8: error:\n    \xe2\x80\xa2 Expected kind \xe2\x80\x98* -> Constraint\xe2\x80\x99, but \xe2\x80\x98(Show, …
Run Code Online (Sandbox Code Playgroud)

haskell

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

Chef执行非顺序配方执行

我按照教程http://gettingstartedwithchef.com/,第1章.

我的运行列表是

  "run_list": [ "recipe[apt]", "recipe[phpap]" ]
Run Code Online (Sandbox Code Playgroud)

我的phpap cookbook的默认食谱

include_recipe "apache2"
include_recipe "build-essential"
include_recipe "openssl"
include_recipe "mysql::client"
include_recipe "mysql::server"
include_recipe "php"
include_recipe "php::module_mysql"
include_recipe "apache2::mod_php5"    
include_recipe "mysql::ruby"
Run Code Online (Sandbox Code Playgroud)

我的食谱的依赖性

depends "apache2"
depends "mysql"
depends "php"
depends "database"
Run Code Online (Sandbox Code Playgroud)

我的回购已经下载了下载的食谱

apache2  aws              database  openssl  phpap    xml
apt      build-essential         mysql  php      postgresql  xfs
Run Code Online (Sandbox Code Playgroud)

我用厨师独奏.我的主人已经过时了回购信息.旧的回购不应该是一个问题,因为我的运行列表中的第一个配方更新它.但是厨师忽略了apt配方并从mysql开始.

见日志

dan@mywp3:~/chef-repo$ sudo chef-solo -c solo.rb -j web.json 
Starting Chef Client, version 11.6.2
Compiling Cookbooks...
[2013-10-27T00:59:28+04:00] WARN: Cloning resource attributes for service[apache2] from prior resource (CHEF-3694)
[2013-10-27T00:59:28+04:00] WARN: …
Run Code Online (Sandbox Code Playgroud)

ruby gem cookbook chef-infra

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

如何将文字值转换为特征对象?

我试图使这些代码更简洁,并摆脱冗余变量.有可能这样做吗?

trait Foo {}
impl Foo for i32 {}
impl Foo for String {}

fn main() {
    let xi32: i32 = 10;
    let y = String::from("ooo");
    let mut foo_list: Vec<&Foo> = vec![];
    foo_list.push(&xi32 as &Foo);
    foo_list.push(&y as &Foo);
}
Run Code Online (Sandbox Code Playgroud)

以下变体不起作用:

foo_list.push(10 as Foo);
Run Code Online (Sandbox Code Playgroud)
error[E0620]: cast to unsized type: `{integer}` as `Foo`
  --> src/main.rs:11:19
   |
11 |     foo_list.push(10 as Foo);
   |                   ^^^^^^^^^
   |
help: consider using a box or reference as appropriate
  --> src/main.rs:11:19
   |
11 |     foo_list.push(10 as Foo);
   | …
Run Code Online (Sandbox Code Playgroud)

rust

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