1
我們如何判斷$ cast的調用是函數還是任務。每個人的電話會有什麼不同?我理解的一件事是通過函數調用,我可以使用assert()。但除此之外,什麼告訴我們該電話是$ cast函數還是$ cast任務?無論哪種情況,我們都會做類似$ cast(pkt,pkt1);
LRM給出了$的語法投功能
function int $cast(singular dest_var, singular source_exp);
和$投任務,
task $cast(singular dest_var, singular source_exp);
,並接着解釋說,
使用$ cast作爲任務或者一個函數確定處理無效分配的方式。
作爲任務調用時,$ cast會嘗試將源表達式 分配給目標變量。如果分配無效,則會發生運行時 錯誤,並且目標變量保持不變。
作爲函數調用時,$ cast會嘗試將源表達式 分配給目標變量,如果轉換是合法的,則返回1。如果 轉換失敗,則該功能不會進行賦值並返回0. 作爲函數調用時,不會發生運行時錯誤,並且目標變量保持不變。
請說明。
或者是LRM鬆散地試圖說,使用assert()或者如果block在$ cast周圍會選擇$ cast函數,否則$ cast任務? –