我有这段代码:
let newArray = [4, 6, 7, 12].reversed().map{print($0, terminator:"")}
它给了我这个输出:
12764
我期待:12 7 6 4
如何使用整数之间的空格输出?
答案 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"