Groovy三元运算符打印空

时间:2016-09-11 09:58:50

标签: java groovy null ternary-operator

我试图通过使用三元运算符从代码中消除大量的IF / ELSE语句。

 //Checks to see if person exists      //if not then add       //else print

 println doesPersonExist(personName) ? addPerson(personName) : 'No such person'

问题是如果执行addPerson(personName)方法,则由于println而打印NULL。无论如何从printng到控制台都有NULL吗?我知道我可以删除println但是“没有这样的人”不会打印。

更新:我终于设法让这个工作按要求 - 我只是删除了println和'没有这样的人'并用它替换了它们:

 doesCarrierExist(carrierName) ? exists() : addCarrier(carrierName)

其中exists方法只是在基类中调用println语句。我希望这可以帮助将来遇到类似问题的任何人。

1 个答案:

答案 0 :(得分:0)

在您的代码中,您可以混合两种不同的操作。

  1. 打印方法。
  2. addPerson(personName)。 你希望将它打印到屏幕上。
  3. 最好的办法是将它作为每个动作的一个独立手柄处理(用于添加和打印)。

    如果addPerson(personName)返回String结果,您可以使用以下Groovy代码部分向控制台打印结果:

    <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous" type="text/javascript"></script>
    <script src="http://ajax.aspnetcdn.com/ajax/signalr/jquery.signalr-2.2.1.js" type="text/javascript"></script>
    <script src="~/signalr/hubs" type="text/javascript"></script>
    
    <script>
        $(function () {
    
               alert($.connection);//here i am getting "undefined"
    
               var chathub = $.connection.chatHub;
    
               alert(chathub);
    
               chathub.clients.broadcastMessage = function (msg) {
    
    
                $("#discussion").append("<li>" + msg + "</li>");
            };
            $("#sendmessage").click(function () {
                var text = $("#message").val();
                chathub.server.send(text);
    
            });
    
            $.connection.hub.start();
        });
    
    </script>
    
        <div class="container">
            <input type="text" id="message" />
            <input type="button" id="sendmessage" value="Send" />
            <ul id="discussion"></ul>
        </div>
    

    注意:如果您使用的是Java语言,请将'def'替换为'String'。