從0開始 3.5 字串串接與迴圈 - MUD Game

Yuri avatar
By Yuri
at 2019-12-05T16:35

Table of Contents

雖然在 java 中串接字串很簡單, 只要一直 + 就可以了
但是在迴圈還是要避免使用 + 來串接字串
為什麼呢?


在之前的範例我們曾經寫下這種程式碼
pm.forEach((k, v) -> v.write("【閒聊】" + playerName + "說:" + input));

其實 + 是 java compiler 提供的語法糖
真正的程式展開之後是這樣的

pm.forEach((k, v) -> v.write(new StringBuilder.append("【閒聊】")
.append(playerName)
.append("說:")
.append(input)
.toString()));

今天線上有 n 個使用者, 就要 new n 個 StringBuilder
雖然在這個年代 MUD 有幾十個人上線就很多了
不過養成良好習慣還是很重要的, 所以在迴圈內串接字串時可以思考看看
有沒有機會在迴圈外先把字串接好
像上面的例子就可以改成這樣寫

String message = "【閒聊】" + playerName + "說:" + input;
pm.forEach((k, v) -> v.write(message));

--
╔═ ═╦╦═════╦═════╗
◤◤◤ ╠╣飛鳥ももこ╠═╗ ║
║╚═════╝ ╚═╦═╣
║╔══════╗╔═╩═╣
█◤ ╠╣Momoko Asuka╠╝ ║
◣◢◣◢╩╩══════╩════╝

--
Tags: 線上

All Comments

Irma avatar
By Irma
at 2019-12-06T10:34
你的順序看起來跟以前es2 driver差
Callum avatar
By Callum
at 2019-12-07T04:33
不多 除了用的語言不同.
Olivia avatar
By Olivia
at 2019-12-07T22:32
這個年代要讓人multi.多人才好玩 XD
Zenobia avatar
By Zenobia
at 2019-12-08T16:31
其實可以從這個階段開始就導入文字
以外的元素,讓它一開始就具備多媒體
Daph Bay avatar
By Daph Bay
at 2019-12-09T10:30
的呈現功能,以這個為前提去設計看看

涼宮春日的憂鬱合作寶箱活動統計

Connor avatar
By Connor
at 2019-12-05T16:18
https://shadowverse.com/cht/news/detail.php?announce_id=1271 11/26,沉默魯傑,涼宮春日,30,長門有C,70 11/27,30,實玖瑠,30,破壞絕傑,70 11/28,首席商販,50,30,50,30 11/29,卡包,30,100,30, ...

從0開始 3.真正的聊天室 (singleton)

Charlie avatar
By Charlie
at 2019-12-05T15:53
大家好! 歡迎收看從0開始的 MUD 開發第 3 集 在上一集我們已經實作了多執行緒的 telnet echo server 雖然我們的 server 可以支援複數使用者同時連線 但是使用者之間並沒有辦法互相溝通 所以這一集我們要講的是如何透過 java 內建的資料結構(HashMap)收集, 管理使用者 ...

從0開始 2.多執行緒

Gary avatar
By Gary
at 2019-12-05T13:36
今天我們要來正式進入 multi-thread (多執行緒)的部分了 觀察之前的程式片段可以發現到有兩個 while 迴圈 一個負責建立連線, 另一個負責 echo // 建立連線的迴圈 while (true) { socket = server.accept(); BufferedReader ...

請問該如何賺寶石最划算

Daph Bay avatar
By Daph Bay
at 2019-12-05T13:08
最近去買了30張底紫去合 雖然沒紫保 但都有配寶石合 爆了26張QQ 想說484人品問題 又買4張底黑 配寶石合也全爆 這樣噴了4000多QQ 寶石算一算才2萬顆 想要寶石真的一定要有保存卷嗎 還是一定要買包卡划算QQ 看到一堆本隊的雷公黑 都拉不到嗚嗚 - ...

OWL 2020 隊伍不精確總移動里程數

Dorothy avatar
By Dorothy
at 2019-12-04T23:16
看到明年OWL要全球開戰,好奇心起來想要看看哪隊最爽哪隊最累,於是用Excel跟Great Circle Mapper手工算了一下距離。 http://i.imgur.com/y4XFSJT.jpg 結論:東區不是很爽就是很累,歐洲隊伍會飛機坐到升天,亞洲四隊因為有特別安排反而沒想像中移動那麼多。 不過 ...