0

在 PL/I 中有一个很好的语句,叫做“PUT DATA”,它的用法是这样的:

NAME := 'ROBBY' 
AGE = 30
PUT DATA ( NAME, AGE )

该语句的输出将是:

姓名 = 罗比,年龄 = 30

在 Java 中这样做需要非常小心地使用引号、空格和加号:

System.out.println ( "Name = " + name + ", age = " + age ) ;

我对 Java 还太陌生,无法感觉到制作“putData”方法是多么不可能。我想我应该先考虑一下,但我主要想知道它是否已经存在,即使是只有一个参数的形式。

putData (name);

会非常干净地生产

名字=罗比

对比

System.out.println( "name = " + name )

即使只有一个“方程式”要显示,这也是令人伤脑筋的。

4

3 回答 3

0

你想要的在 Java 中是不可能的,因为一个方法不能——也不应该(!)——对用于计算参数值的表达式有任何了解。如果有人会写:

putData("ROBBY")

没有变量名 - 应该putData打印什么?

如果 Java 有一个 map 文字,你可以有类似的东西:

putData({name:"ROBBY"})

并且putData会知道这name是关键,“ROBBY”是值并且知道如何打印它。仍然不是您想要的 - 但很接近。

无论如何,我也不喜欢字符串连接,更喜欢使用printf

System.out.printf("name = %s\n",name);

你仍然需要写name两次(不能绕过那个),但它不那么难看。

于 2013-09-10T00:37:27.330 回答
0

我正在回答我自己几个月前的第一个问题。

Netbeans 代码模板可以伪造 PL/I“放置数据”语句soutv

System.out.println("${EXP instanceof="<any>" default="exp"} = " + ${EXP});

键入soutv(然后按 Tab)给出以下模板:

在此处输入图像描述

由于第一次出现args是在“重构格式”中“装箱”,所以半明显的是,无论它被更改为什么,其他的都会args发生类似的变化。因此,如果我输入now“args box”(然后按回车键),语句变为:

   System.out.println("now = " + now);

这已经足够好了。唯一我不明白的是能够说的 PL/I

put data(a,b,c)

并得到

a = ..., b = ..., c = ....

但我对发展感到有点高兴。希望它可以帮助别人。

于 2014-01-20T22:52:33.803 回答
0
System.out.printf("${EXP instanceof="<any>" default="exp"} = %s\n" , ${EXP});

上面的 Netbeans 模板执行了 Idan 的建议(在下面的答案中)

System.out.printf("name = %s\n",name);

name除了具有启用以下输出的优势之外,不需要并且不需要输入两次:

x+y+z = 12

只需x+y+z在“args box”中输入,就会产生以下代码:

System.out.printf("\nx+y+z = %s\n", x+y+z);

其中给出了以下初始化:x = 3、y = 4 和 z = 5。

于 2014-01-20T23:08:12.990 回答