问题标签 [diamond-operator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
perl - Perl 的菱形运算符:可以在 bash 中完成吗?
有没有一种惯用的方法可以在 bash 中模拟 Perl 的菱形运算符?与钻石算子,
读取标准输入的输入和
读取 file1 和 file2 的输入。
另一个限制是我想将 script.sh 中的标准输入用于我自己脚本的输入之外的其他内容。下面的代码对上面的 file1 file2 ... case 执行了我想要的操作,但不适用于 stdin 上提供的数据。
我更喜欢 Bash 解决方案,但任何 Unix shell 都可以。
编辑:为澄清起见,这里是 script.sh 的内容:
我希望它以菱形运算符在 Perl 中的工作方式工作,但它现在只处理文件名作为参数。
编辑2:我不能做任何事情
因为命令的标准输入不是用户的数据。命令的标准输入是我在 here-doc 中的数据。我希望用户数据进入我的脚本的标准输入,但它不能是我脚本中命令调用的标准输入。
perl - 我可以使用 <> 运算符跳过整个文件吗?
下面的 Perl 代码有一个明显的低效率;
代码将逐步遍历我们不想要的文件的每一行。
在运行此特定脚本的文件大小上,这不太可能产生明显的差异,但为了学习;我怎样才能将整个文件 <> 工作并移至下一个文件?
这样做的目的是因为这个脚本运行的服务器存储旧版本的应用程序,文件名中带有版本号,我只对当前版本感兴趣。
perl - Perl 菱形运算符是否迭代非魔术数组(不是@ARGV)?
我认为以下内容不应该起作用,但确实如此:
据我所知,Perl 的<>
运算符应该在文件句柄、glob 等上工作,除了文字<>
(而不是<FILEHANDLE>
),它神奇地迭代了@ARGV
.
有谁知道它是否应该像我的测试一样工作?
perl - 为什么在 Perl 的列表上下文中使用菱形运算符时出现关闭的文件句柄错误?
这段代码:
产生此错误:
我不知道为什么。
编辑:原始帖子在open
声明中使用“,”而不是“<”。
java - JDK7:钻石推理语法混乱
尝试在JDK7中编译以下代码:
为什么菱形语法的第二种用法不起作用?
第一次使用的最大区别是什么?
java - Java 中菱形运算符 (<>) 的意义何在?
java 7 中的菱形运算符允许如下代码:
但是在 Java 5/6 中,我可以简单地编写:
我对类型擦除的理解是这些完全相同。(无论如何,泛型在运行时都会被删除)。
为什么要为钻石烦恼?它允许哪些新功能/类型安全?如果它没有产生任何新功能,为什么他们会提到它作为一个特性?我对这个概念的理解有缺陷吗?
perl - 为什么我不能在 Perl 中将菱形运算符与数组一起使用?
代码
跑
我不确定为什么Way1
不能按预期工作Way2
。这两种方法不一样吗?这里发生了什么?
perl - 如何在标量上下文中使用菱形运算符作为函数调用参数?
如何直接将值从菱形运算符传递给函数(子)?
我试过了:
但是当我为每个函数参数输入数字时,我需要输入 EOF。它表现为@array=<>
. 我希望它表现得像$var=<>
. 所以输入应该是这样的:
perl - 如何伪造 perl 的钻石运算符的输入?
这个问题的答案描述了如何伪造输入到<STDIN>
. 我的目标类似于那个问题:我的单元测试需要伪造输入到<>
.
当我将相同的技术应用于伪造输入时<>
,它不起作用。的介绍性解释<>
使我相信,当命令行上没有给出文件时,它是从 STDIN 读取的,但情况似乎并非如此。
我正在尝试制作的样本:
fake2
工作,fake1
不。一个示例会话(“qwerty”是我输入的):
我的问题:
- 我怎样才能伪造输入
<>
? - 命令行上没有给出文件
<>
和没有给出文件有什么区别?<STDIN>
(即为什么链接问题中的技术适用于<STDIN>
但不适用于<>
?)
谢谢。
java - 为什么在引入泛型时没有实现菱形运算符?
在 Java 7 中,他们最终实现了diamond operator
在使用泛型时可以省略初始化的重复。
例如List<String> list = new ArrayList<>();
这看起来很方便,因为它避免了编写“无用”的代码。它似乎非常有用,我很好奇为什么在引入泛型时没有实现它。