小编Joh*_*ica的帖子

new Object {}构造

在Java中,创建对象的标准方法是使用

MyClass name = new MyClass();
Run Code Online (Sandbox Code Playgroud)

我也经常看到这个结构

new MyClass() { /*stuff goes in here*/ };
Run Code Online (Sandbox Code Playgroud)

我已经在网上寻找了一段时间,但是找不到第二种构造样式的作用或它是如何做的很好的解释.

有人可以解释你如何以及为什么要使用第二个结构?

java object

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

如何使用单个命令从终端创建和打开文件?

要从终端创建文件,请键入以下内容...

$ touch filename.py
Run Code Online (Sandbox Code Playgroud)

要打开我刚从终端创建的文件,然后输入...

$ open filename.py
Run Code Online (Sandbox Code Playgroud)

我很想知道是否有一个终端命令同时执行...创建然后打开(我超级懒惰).

shell

23
推荐指数
4
解决办法
7万
查看次数

通过一组槽尽可能均匀地分配整数量

我试图找到一种优雅的方式来实现将数量分配到python中给定的一组槽中.

例如:

分布在4个平板上的7个橙子将返回:

[2, 2, 2, 1]
Run Code Online (Sandbox Code Playgroud)

4个板块上的10个橙子将是:

[3, 3, 2, 2]
Run Code Online (Sandbox Code Playgroud)

python

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

文件安装在哪里?

给定文件或目录的路径,如何确定该文件的安装点?例如,如果/tmp作为tmpfs文件系统挂载,那么给定文件名/tmp/foo/bar我想知道它存储在以tmpfsroot为中/tmp.

这将是在C++中,我想避免通过调用外部命令system().代码应该是健壮的 - 不一定是针对故意篡改,但绝对面对嵌套的挂载点,符号链接等.

我无法找到一个简单的系统调用来执行此操作.看起来我必须自己写支票.这是我正在计划的大致轮廓.

  1. 将文件名规范化为readlinkshell命令.怎么样?
  2. 阅读/etc/mtabgetmntent()&CO.
  3. 确定文件的相应安装条目.怎么样?

对于#1是一个简单的系统调用还是我需要读取路径的每个目录组件并解决它们,readlink(2)如果它们是符号链接?处理...我自己?好像很痛苦.

对于#3,我对如何做到这一点有各种各样的想法.不确定哪个最好.

  1. open()文件,其父级,父级的父级等使用,openat(fd, "..")直到我到达其中一个/etc/mtab条目.(我怎么知道我什么时候做?fstat()并比较inode数字?)
  2. 在mount表中找到最长的目录名,它是我文件名的子字符串.

我倾向于第一个选项,但在我编码之前,我想确保我不会忽略任何东西 - 理想情况下,内置函数已经完成了!

c++ linux mount

22
推荐指数
1
解决办法
5451
查看次数

Python:将打印输出分配给变量

我想知道如何将print函数(或任何函数)的输出分配给变量.举个例子:

import eyeD3
tag = eyeD3.Tag()
tag.link("/some/file.mp3")
print tag.getArtist()
Run Code Online (Sandbox Code Playgroud)

如何将输出分配给print tag.getArtist变量?

python unix variables function

22
推荐指数
5
解决办法
7万
查看次数

如何在python中创建一个简单的pdf文件?

我正在寻找一种从Python输出非常简单的pdf文件的方法.基本上它将由两列单词组成,一列是俄语(所以utf-8个字符),另一列是英语.

我一直在谷歌搜索大约一个小时,我发现的软件包要么是大规模的过度杀戮(并且仍然没有提供有用的例子),例如ReportLab,或者似乎认为任何人都会用pdfs做的事情是将它们中的几个连接在一起(PyPdf,pdfrw).

也许我只是错过了一些显而易见的东西,但是我所看到的所有人似乎都开始进行一些关于拍摄17个pdf文件并将它们转换成一张60英尺宽的海报和23个窗格(可能略有夸张)的大规模讨论,并留下我想知道如何让"Hello World"计划运作起来.任何帮助,将不胜感激.

python pdf

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

如何理解IMAP电子邮件文本中的等号'='符号?

我目前正在使用Python imaplib来处理电子邮件文本.

我使用fetch命令从GMail服务器获取原始数据电子邮件.但是,我发现有一件事很棘手 - 等号'='.它不是正常的等号,而是一个特殊的符号.

例如:

  1. '='有时用作文本行末尾的连字符标记:

    Depending upon your module selections, course lecturers may also contact yo=
    u with preparatory work over the next few weeks. It would be wise to start =
    reviewing the preparatory reading lists provided on the module syllabi now =
    
    Run Code Online (Sandbox Code Playgroud)
  2. 有时,它充当类似'%'的转义标记,例如:

    a=20b实际上实际上a<SPACE>b
    =46rom hereFrom here

我对这种奇怪的符号感到困惑.我认为必须有一个指导来处理这个,因为GMail可以在他们的应用程序中正确处理这样的事情.

我发现这与HTML编码有关,就像'%'将被编码一样.但问题是,我从IMAP响应得到的只是一个包含这个'='符号的字符串.我该怎么处理?使用正则表达式?

html python imap imaplib gmail-imap

22
推荐指数
1
解决办法
6370
查看次数

何时未分配的表达式是有效的语句?

我已经阅读了Oracle的表达式教程,无法理解这一点.

众所周知,以下代码行是有效的Java语法:

new Object();
Run Code Online (Sandbox Code Playgroud)

但是,当我用原始表达式尝试这个时:

(3 + 2);
Run Code Online (Sandbox Code Playgroud)

Eclipse显示编译错误"赋值的左侧必须是变量".

这不仅适用于原语,也适用于String文字:

"arbitraryString";
Run Code Online (Sandbox Code Playgroud)

那么,未分配的表达式作为Java代码行有效的规则是什么?

java

22
推荐指数
4
解决办法
811
查看次数

用Java 8+对Map进行分区

我有一个Map<String, String>和一个List<String>.我想Map根据条件进行分区

foreach(map.key -> list.contains(map.key))
Run Code Online (Sandbox Code Playgroud)

并产生两个Map.最优雅的方式是什么?我在Java 11上,所以你可以在答案中抛出你想要的一切.

我现在要做的是:

map.entrySet()
   .stream()
   .collect(partitioningBy(e -> list.contains(o.getKey())));
Run Code Online (Sandbox Code Playgroud)

但这给了一个Map<Boolean, List<Entry<String, String>>>.

java java-stream

21
推荐指数
5
解决办法
2241
查看次数

IEnumerable&lt;&gt; vs List&lt;&gt; 作为参数

一般来说IEnumerable<>,当我传入参数时,我倾向于使用作为类型。然而,根据 BenchmarkDotNet:

[Benchmark]
public void EnumeratingCollectionsBad()
{
    var list = new List<string>();
    for (int i = 0; i < 1000; i++)
    {
        Bad(list);
    }
}

[Benchmark]
public void EnumeratingCollectionsFixed()
{
    var list = new List<string>();
    for (int i = 0; i < 1000; i++)
    {
        Fixed(list);
    }
}

private static void Bad(IEnumerable<string> list)
{
    foreach (var item in list)
    {
    }
}

private static void Fixed(List<string> list)
{
    foreach (var item in list)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)
方法 工作 …

c# performance ienumerable benchmarking

21
推荐指数
1
解决办法
1333
查看次数