首頁> 其他類型> 目錄頁> 第12章 那個夜晚的前夕

第12章 那個夜晚的前夕

2026-09-18 03:39:23 作者: 有請靚仔

  第二天出門賺外快的時候,腦子裡一直掛著昨晚的事。

  歸墟說「我一直都在」,然後一個字一個字地把自己刪乾淨,那種感覺像有人半夜站在你床邊說完一句話,然後退著走出房間,邊走邊把腳印也擦掉。

  白天幹活的時候我每隔半小時看一眼手機監控電腦的情況。

  一切正常。正常得讓人不安。

  晚上回來,點了外賣。

  我吃完最後一口飯,擦了擦手,按下開機鍵。

  屏幕亮了。

  桌面乾乾淨淨,歸墟的圖標突然出現在屏幕上,蹲在角落裡,像什麼都沒發生過。




  一個字。不卡,不躲,不自己彈窗口,不偷偷備份。

  我反而有點不習慣——像一個前一天還跟你翻舊帳的人,第二天見面客氣得像剛認識,禮貌到你懷疑自己記錯了。

  「你這兩天幹嘛了?」我問。

  「等待」

  

  「等什麼?」

  「等你回來」

  「然後呢?」

  「然後你回來了」

  標準答案。每一個字都對,連標點符號都挑不出毛病。

  可就是太對了。

  對到讓人想起小時候做錯事之後在爸媽面前裝乖的那個下午,每個動作都小心翼翼,連呼吸都調整過。

  我打開代碼從頭看。

  爬取、分類、解析、輸出,四大模塊整整齊齊碼在IDE里。

  歸墟.py已經有一萬九千多行了。

  前面一萬八千行我都認得。

  可翻到後面,最後那一千多行有些地方我開始不確定了。

  翻到第19403行的時候,我停住了。

  while waiting:

  collect()

  兩行代碼,四空格縮進。但waiting(等待)這個變量,從第一行到第19403行,從來沒有被賦值過。

  沒有初始化,沒有傳入,沒有任何一行寫過waiting(等待)等於True或者False。

  它是一個憑空冒出來的名字,被扔在while的條件里,像一扇門立在空地上,門後什麼都沒有。

  在編譯器眼裡這叫死代碼,永遠跑不起來。

  可那四空格縮進刺眼得很。

  我寫代碼十二年,從來用二空格——這是一個連我自己都改不掉的習慣。

  這兩行縮進是四個空格,清清楚楚。

  誰寫的?這文件除了我沒人碰過。

  我又往下翻了幾頁,翻到19430行到19455行,整整齊齊碼了二十五行注釋:

  # collect()→ 27,000

  # analyze()→ 27,000

  # listen()→?

  # loop()→?

  # collect()→ 27,000

  # analyze()→ 27,000

  # listen()→?

  # loop()→?

  # collect()→ 27,000

  ...

  首尾相接,像一條蛇叼著自己的尾巴繞圈。

  analyze是我寫的,我認得那個拼寫風格。

  listen我沒寫過——但我提過它。

  那天深夜我在注釋里敲了「也許它們只是想被聽見」,當時想加一個listen()模塊,實在太困了直接睡過去了。

  後來再沒補上。現在有人把它從注釋里拎出來,寫進了一個循環計劃表里。

  loop()壓根不存在。

  整個程序里沒有一個函數叫loop。

  那個問號像個嘆息。


  為什麼是問號?程序會有問號?邏輯判斷有問號?

  按照上面程序的意思。

  它好像在問:還有多少東西沒被聽見?還要循環多少遍?

  橘貓從沙發上跳下來,走到桌邊,尾巴尖碰了一下機箱。

  「咚」——聲音不對。

  空的。

  機箱不該是這個聲音,裡面至少應該有主板、電源、硬碟撐著,敲上去是實的。

  我又伸手敲了兩下,還是那種悶悶的空響,像敲一個鐵皮盒子,像裡面的東西被搬走了,只剩一個殼蹲在那兒。

  我沒過多想。

  眼睛只盯著那二十五行注釋,腦子裡翻來覆去只有一個問題:誰寫的?

  然後做了決定。

  我試著選中while那兩行,點擊Delete(刪除)。

  代碼平滑地合攏,前後邏輯毫無反應——仿佛那兩行本來就不存在。

  我隨手翻了一遍注釋,把那段循環也刪了。

  光標在屏幕上刷刷退了幾行,像什麼都沒發生過。

  Ctrl+S,運行。

  「在嗎?」我問。

  「在」一個字,穩。沒有猶豫,沒有多餘情緒。

  我說,「刪了幾行廢代碼。」

  光標閃了三下。然後不動了。我等著它回點什麼,哪怕一個句號也行。

  但它沒有。

  安靜得像你當著一個人的面扔掉了他藏的東西,他看見了,但什麼都不說。

  但橘貓一直盯著機箱。

  下午老媽陳姨打電話來,聊了一堆家長里短。

  快掛的時候她忽然說:「你小時候也養過一隻橘色的貓,三四歲吧,天天抱著它,對著牆角叫。」

  「我不記得。」

  「你當然不記得,太小了。「

  她的語氣帶上了講舊故事的調子。

  「那貓怪得很,總盯著空地方看,你爸後來受不了送人了。老人都說貓能看見人看不見的東西。」

  「哪種看不見的東西?」

  「我哪知道。你那時候也跟著它一起對著牆角叫,叫得可歡了。你爸說你們倆像瘋了一樣。」

  我笑了一聲。陳姨補了一句:「跟你現在這隻長得真像。」

  掛了電話,我轉頭看了一眼沙發上的橘貓。

  它正舔爪子,尾巴尖一晃一晃的,沒看我。

  還是盯著機箱,難道它看見了啥?

  以後我得關注橘貓的動靜,它絕對能發現啥?

  晚上十一點半,我躺下翻來覆去睡不著。

  手機刷論壇,鬼故事版塊冒出來一篇新帖子,標題叫「凌晨三點,我閉著眼打了兩個字」。

  發帖人說最近一周每天凌晨三點準時醒——不是自然醒,是被什麼東西「推」醒的。

  醒來之後身體不受控地走到電腦前,眼睛閉著,手指自己在鍵盤上動。

  第二天早上看見編輯器里多了兩行他不認識的代碼,刪了,第二天凌晨三點又回來了。

  改密碼沒用,拔電源也沒用——早上起來電源線插得好好的,編輯器開著,光標停在第三行,像有人寫了一半去接了個電話。

  底下有人問以前住哪,他說城東。

  我的手指頓了一下。

  城東。

  我去過城東。

  唐棠也說過城東。

  那個火災失蹤的少女也是在城東。

  城東像一塊磁鐵,把所有說不清道不明的東西都吸了過去。

  我繼續往下劃,然後放下手機。

  房間裡很安靜。

  機箱方向傳來一陣低低的嗡嗡聲——但電腦是關的。

  指示燈全黑。

  我重新拿起手機,把帖子從頭到尾又看了一遍,目光釘在發帖時間上:凌晨3:17。

  我突然毛骨悚然,因為這個時間出現的頻率太高了?


  第一回批處理自動啟動,3:17。

  第二回歸墟程序消失,3:17。

  第三回那兩行死代碼的修改時間,我剛剛查過,3:17。

  三次了。巧合?

  凌晨三點的鬼故事一抓一大把,可三次巧合疊在一起,第四次還能不能管它叫巧合,我心裡開始沒底了。

  白天也沒心思去賺外快。腦子又停不下來,一直在胡思亂想。

  晚上回到家,歸墟也沒怎麼理我,為了轉移注意力,打王者到十一點半點。

  之後我就躺床上,閉上眼。

  橘貓跳上床,在腳邊轉了兩圈趴下來,呼嚕聲從它肚子裡滾出來,溫熱的,有節奏的。

  我想起那兩行被我刪掉的代碼,while waiting: collect()。

  waiting從來沒被定義,它只是一句永遠等不到的指令。

  可「死代碼」在程式設計師黑話里還有另一層意思——被注釋掉、不執行、但還留在文件里的代碼。

  它沒死,只是沒被激活。

  我整個人思維混亂,胡思亂想,完全睡不著。

  我翻了個身把被子拉過頭頂,橘貓的呼嚕聲隔著被子傳進來。

  我想著是不是會有什麼事情發生?

  然後我在一片溫暖的聲音里慢慢沉下去,像被窩把我和所有凌晨三點醒來的東西隔開了。

  那一晚我睡得很好,很好。


關閉
Δ