小编Pet*_*all的帖子

不区分大小写的比较器会破坏我的TreeMap

一个Comparator在我使用我TreeMap打破了我的意图的行为TreeMap.看下面的代码:

TreeMap<String, String> treeMap = new TreeMap<>(new Comparator<String>() {
    public int compare(String o1, String o2) {
        return o1.toLowerCase().compareTo(o2.toLowerCase());
    }
});
treeMap.put("abc", "Element1");
treeMap.put("ABC", "Element2");
Run Code Online (Sandbox Code Playgroud)

我认为我所做的是我创建了一个按键排序的地图,不区分大小写.两个不同的元素具有不相等的键(abcABC),其比较将返回0.我期待这两个元素的随机排序.然而,命令:

System.out.println("treeMap: " + treeMap);
Run Code Online (Sandbox Code Playgroud)

导致:

treeMap: {abc=Element2}
Run Code Online (Sandbox Code Playgroud)

钥匙abc已重新分配价值Element2!

任何人都可以解释这是怎么发生的,如果它是一个有效的,记录在案的行为TreeMap

java comparator

20
推荐指数
2
解决办法
2681
查看次数

将haskell平台更新到最新的最流畅的方法是什么?

我在OSX 10.6上,目前有平台2010.2.0.0.我应该只在顶部安装2011.2.0.1还是有更顺畅的更新机制?

haskell upgrade haskell-platform

19
推荐指数
2
解决办法
5798
查看次数

我应该使用哪个postgresql包?

我想从haskell访问我本地(mac)机器上的现有postgres数据库.

我可以看到很多关于hackage的postgres包.这可能是我最容易使用的?

postgresql haskell

19
推荐指数
2
解决办法
8051
查看次数

是否可以从haskell程序调用bash或shell脚本?

我正在用haskell编写一些shell脚本,我正在gitbash中运行,但是我还希望能够从这些脚本中使用其他一些现有的脚本.

例如,我想运行maven目标或做一个git pull,但不必专门与这些工具集成.

有没有办法做到这一点?

shell haskell ffi

19
推荐指数
4
解决办法
6594
查看次数

为什么std :: rc :: Rc <>不能复制?

有人可以向我解释为什么Rc<>不是Copy吗?

我正在编写使用大量共享指针的代码,并且不得不一直打字,.clone()这让我很紧张.

在我看来,Rc<>应该只是一个指针,这是一个固定的大小,所以类型本身应该是Sized,因此Copy,对吗?

我错过了什么吗?

smart-pointers rust

19
推荐指数
2
解决办法
1895
查看次数

流类型对象中的动态属性名称

我正在慢慢地将flowType工作到我的代码中,但我正在努力解决一个概念.

如何指定对象的未知动态命名属性的类型?

例如,我的用户对象可能包含一个包含具有唯一键的组织的对象.

我该如何定义?

export type User = ?{
  currentOrg: string,
  displayName?: string,
  email: string,
  emailVerified: boolean,
  newAccount: boolean,
  organisations?: {
     UNKNOWNKEY?: string {
       orgData1: string,
       orgData2: string,
     }
  },
  uid: string,
  photoUrl?: string,
};
Run Code Online (Sandbox Code Playgroud)

真的很感激任何帮助.谢谢!

javascript syntax flowtype

19
推荐指数
1
解决办法
6482
查看次数

为dyn对象实现特征时的神秘生命问题

考虑以下玩具示例:

use std::cmp::Ordering;

pub trait SimpleOrder {
    fn key(&self) -> u32;
}

impl PartialOrd for dyn SimpleOrder {
    fn partial_cmp(&self, other: &dyn SimpleOrder) -> Option<Ordering> {
        Some(self.cmp(other))
    }
}

impl Ord for dyn SimpleOrder {
    fn cmp(&self, other: &dyn SimpleOrder) -> Ordering {
        self.key().cmp(&other.key())
    }
}

impl PartialEq for dyn SimpleOrder {
    fn eq(&self, other: &dyn SimpleOrder) -> bool {
        self.key() == other.key()
    }
}

impl Eq for SimpleOrder {}
Run Code Online (Sandbox Code Playgroud)

这不编译.它声称在实施过程中存在一个终身问题partial_cmp:

error[E0495]: cannot infer an appropriate lifetime due …
Run Code Online (Sandbox Code Playgroud)

traits lifetime rust

19
推荐指数
1
解决办法
932
查看次数

创建具有树结构的模型

我有树结构的类别.我试图通过为每个人定义父母来将他们联系在一起.(我无法弄清楚如何调用该属性parent所以它只是暂时category,但它意味着父母).

class Category < ActiveRecord::Base

    has_one :category # the parent category

end 
Run Code Online (Sandbox Code Playgroud)

但这种关系最终走错了方向.

getter函数在子类别上(正确)但category_id存储在父类中:

parent = Category.create(:name => "parent")
child = Category.create(:name => "child", :category => parent)

parent.id # 1
child.id # 2

child.category_id # nil
parent.category_id # 2

child.category.name # "parent" (!!)
Run Code Online (Sandbox Code Playgroud)

父母需要能够有多个孩子,所以这不会起作用.

ruby ruby-on-rails ruby-on-rails-3

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

具有常量字符串和依赖类型的流类型

假设我有以下常量字符串:

export default const FOO = 'FOO'

假设我在流注释文件中导入它,如下所示:

import FOO from '../consts/Foo'

然后我有一个功能:

const example = (foo : string) : {| type: FOO, foo: string |} => {
  return {type: FOO, foo: foo}
}
Run Code Online (Sandbox Code Playgroud)

这不是类似于:

  6: const example = (foo : string) : {| type: FOO, foo: string |}=> {
                                                         ^^^^^^^^^^^^^^ string. Ineligible value used in/as type annotation (did you forget 'typeof'?)
  6: const example = (foo : string) : {| type: FOO, foo: string |}=> {
                                                         ^^^^^^^^^^^^^^ FOO
Run Code Online (Sandbox Code Playgroud)

所以我的问题是: …

javascript types dependent-type ecmascript-6 flowtype

18
推荐指数
1
解决办法
3750
查看次数

如何遍历Hashmap,打印键/值并删除Rust中的值?

这在任何语言中都应该是一项微不足道的任务.这不适用于Rust.

use std::collections::HashMap;

fn do_it(map: &mut HashMap<String, String>) {
    for (key, value) in map {
        println!("{} / {}", key, value);
        map.remove(key);
    }
}

fn main() {}
Run Code Online (Sandbox Code Playgroud)

这是编译器错误:

error[E0382]: use of moved value: `*map`
 --> src/main.rs:6:9
  |
4 |     for (key, value) in map {
  |                         --- value moved here
5 |         println!("{} / {}", key, value);
6 |         map.remove(key);
  |         ^^^ value used here after move
  |
  = note: move occurs because `map` has type `&mut std::collections::HashMap<std::string::String, std::string::String>`, which does …
Run Code Online (Sandbox Code Playgroud)

iteration hashmap mutability rust

18
推荐指数
3
解决办法
9149
查看次数