小编dan*_*iel的帖子

如果作为一个语句编写,则作为Predicate接口的方法组合的Lambda不会编译

这两种lambda创造方式有什么区别?为什么不编译第一个?

Predicate<Integer> predicate = Predicate.isEqual(0).or(Predicate.isEqual(1));
Run Code Online (Sandbox Code Playgroud)

给出: 错误:不兼容的类型:Predicate<Object>无法转换为Predicate<Integer> = Predicate.isEqual(0).or(Predicate.isEqual(1));

Predicate<Integer> pred21 = Predicate.isEqual(0);
Predicate<Integer> pred22 = pred21.or(Predicate.isEqual(1));
Run Code Online (Sandbox Code Playgroud)

这个工作.

java generics lambda currying java-8

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

使用UTF-8编码字符打印字符串,例如:"\ u00c5\u009b \"

我想打印像这样编码的字符串:"Cze\u00c5\u009b\u00c4\u0087"但我不知道怎么做.示例字符串应打印为:"Cześć".

我试过的是:

str = "Cze\u00c5\u009b\u00c4\u0087"
print(str) 
#gives: CzeÅÄ

str_bytes = str.encode("unicode_escape")
print(str_bytes) 
#gives: b'Cze\\xc5\\x9b\\xc4\\x87'

str = str_bytes.decode("utf8")
print(str) 
#gives: Cze\xc5\x9b\xc4\x87
Run Code Online (Sandbox Code Playgroud)

哪里

print(b"Cze\xc5\x9b\xc4\x87".decode("utf8"))
Run Code Online (Sandbox Code Playgroud)

给出"Cześć",但我不知道如何将"Cze\xc5\x9b\xc4\x87"字符串转换为b"Cze\xc5\x9b\xc4\x87"字节.

我也知道在使用"unicode_escape"参数编码基础字符串后,问题是字节表示中的额外反斜杠,但我不知道如何摆脱它们 - str_bytes.replace(b'\\\\', b'\\')不起作用.

python python-3.x python-unicode

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

标签 统计

currying ×1

generics ×1

java ×1

java-8 ×1

lambda ×1

python ×1

python-3.x ×1

python-unicode ×1