在網路上看到一個有關 Python 的題目

1
print(0.1 +0.2 == 0.3)

原本我是認為 True… 但是後來我問 ChatGPT 之後才發現這根本是陷阱題…

在 Python 中,浮點數是有一定的不精確性的。由於 0.1 和 0.2 這兩個數字在二進位系統中不能精確表示,它們相加的結果並不會完全等於 0.3。這種現象在大多數的編程語言中都存在,並且是由於如何在二進位系統中表示浮點數所導致的。

因此,表達式 0.1 + 0.2 == 0.3 在 Python 中的結果是 False。這意味著正確答案是 b) False。

FxCK !

最近工作終於有點自動化了

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
dist:
	@echo "Packing the plugin..."
	@cd .. && wp dist-archive ./xxx.zip
	@echo "Extracting version number..."
	@VERSION=$$(grep "Version:" ./xxx.php | awk '{print $$3}') && \
		echo "Found version: $$VERSION" && \
		mv ../xxx.zip ~/Desktop/xxx-ver$$VERSION.zip
	@echo "Plugin packed and moved to the desktop with the version number."
	@TODAY=`date +%Y%m%d` && \
		VERSION=$$(grep "Version:" ./xxx.php | awk '{print $$3}') && \
		DEST_DIR="/Users/onepc/Documents/deploy/$$TODAY" && \
		mkdir -p $$DEST_DIR && \
		cp ~/Desktop/xxx-ver$$VERSION.zip $$DEST_DIR/xxx-ver$$VERSION.zip && \
		echo "Plugin copied to the releases directory with today's date."
	@echo "Plugin upload Lark..."
	@source ~/workspace/playground/lark/myenv/bin/activate && \
		VERSION=$$(grep "Version:" ./xxx.php | awk '{print $$3}') && \
		python3 ~/workspace/playground/lark/upload.py $$TAPPAY_PLUGIN ~/Desktop/xxx-ver$$VERSION.zip
	@echo "Plugin already upload Lark"

後來發現 WP Cli 就有一個包裝 plugin 的 function 可以使用… 於是我這樣的自動化流程算是有點建立出來了… 撒花!

WordPress transient 的用法

WordPress 提供了一個方便儲存資料的方法。Transient 可以將數據存儲在更快的存儲系統中(例如,如果配合使用了對應的緩存插件,則可以存儲在內存中)。Transient 具有過期時間,超過這個時間,數據將被刪除或需要重新生成。

1
2
set_transient(string $transient, mixed $value, int $expiration );
get_transient(string $transient);
  • Transients 不保證一定會被存儲。如果系統中沒有可用的對象緩存,它們將被存儲在數據庫的選項表中。
  • 存儲在 Transient 中的數據應該是可序列化的。
  • 過期的 Transient 可能不會立即從系統中被自動刪除。如果 Transient 存儲在 WordPress 的對象緩存(如 Memcached 或 Redis)中,它通常會在過期時由快取系統自動清理。然而,如果 Transient 存儲在數據庫中(在沒有啟用對象快取的情況下),則在下次嘗試訪問時,過期的 Transient 會被檢查並刪除,返回值為 false。此外,過期的 Transient 也會在下次嘗試存儲具有相同名稱的 Transient 時被刪除。
小君曰: 真方便