Swift:打印分隔符,不在数组项之间添加空格

时间:2018-05-08 00:01:09

标签: swift printing

我有这段代码:

let newArray = [4, 6, 7, 12].reversed().map{print($0, terminator:"")}

它给了我这个输出:

12764

我期待:12 7 6 4

如何使用整数之间的空格输出?

2 个答案:

答案 0 :(得分:3)

问题是您明确告诉print语句将空String作为终止符,因此问题。如果您将terminator更改为" ",则您的代码可以正常运行。

顺便说一下map print的结果Void是没有意义的,forEach。我想你只想打电话给[4, 6, 7, 12].reversed().forEach{print($0, terminator:" ")}

print("")

要实际查看输出,您还需要调用forEach,因为打印缓冲区仅在换行符上刷新到控制台,因为在 chatroomRef.child(chatInfo.getPartner_firebase_uid()) .child(mChatId) .child("totalUnreadCount") .runTransaction(new Transaction.Handler() { @Override public Transaction.Result doTransaction(MutableData mutableData) { Integer totalUnreadCount = mutableData.getValue(Integer.class); if(totalUnreadCount == null){ mutableData.setValue(0); }else{ mutableData.setValue(totalUnreadCount + 1); } return Transaction.success(mutableData); } @Override public void onComplete(DatabaseError databaseError, boolean b, DataSnapshot dataSnapshot) { Log.d("result", "postTransaction:onComplete:" + databaseError); } }); 中明确设置了终结符到了一个空间,那里没有新的线路。

答案 1 :(得分:3)

这似乎是滥用印刷品。为什么不使用joined(separator:)来构建输出字符串:

let output = [4, 6, 7, 12].reversed().map { String($0) }.joined(separator: " ")

print("\"" + newArray + "\"")

这只会在元素之间插入空格,它不会在末尾放置一个不需要的空格,然后它只会在末尾输出一个换行符以将输出刷新到控制台。

以上的输出是

"12 7 6 4"