W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
如果您是Hack的新手,該入門指南應該能夠幫助您快速熟悉基礎知識; 如果您還沒有閱讀我們對Hack的主要功能的介紹,此后,您可以深入了解有興趣的主題,以獲取更多關于Hack提供的知識。
您需要編寫和執(zhí)行Hack代碼的先決條件非常簡單:
(1)執(zhí)行Hack代碼(2)運行Hack類型檢查器(這是使用Hack語言的基礎優(yōu)勢)來確保您的代碼寫得好,安全和一致,所以HHVM運行時是必需的。
您可以開始學習Hack,而無需安裝任何軟件。只需轉(zhuǎn)到交互式Hack教程,逐步了解一些Hack功能。
讓我們在五個簡單的步驟中潛入并創(chuàng)建您的第一個Hack程序。
查看有關如何安裝HHVM 的HHVM入門指南。
安裝HHVM后,Hack typechecker將可用于在運行代碼之前靜態(tài)檢查代碼。它不是一個編譯器; 而是一個超快的代碼分析器,在代碼運行之前嘗試捕獲動態(tài)編程錯誤,而不是在之前或之后。
類型檢查器被調(diào)用,hh_client并且在HHVM團隊支持的所有官方包中都可以使用HHVM。如果您正在使用社區(qū)提供的軟件包,那么hh_client很可能也是可用的,但您應該與您的軟件包維護者聯(lián)系。
選擇要存儲Hack代碼的目錄。在這個目錄下運行touch .hhconfig。這將創(chuàng)建一個空文件,hh_client尋找作為類型檢查代碼的根。為了正確分析您的代碼,類型檢查器需要進行全局分析,并能夠查看所有代碼。這意味著它為這個根目錄下的任何代碼假定一個全局自動裝載器,并將這個根目錄下的所有代碼一起作為一個項目一起檢查。
使用您選擇的編輯器(例如,Nuclide,vim,Sublime Text),讓我們創(chuàng)建一個first.php使用以下代碼調(diào)用的文件:
{
public function __construct(private T $elem) {
}
public function get(): T {
return $this->elem;
}
}
function get_int(): int {
return 42;
}
function use_box(): void {
$box = new Box(get_int());
$i = $box->get();
var_dump($i);
}
use_box();
該入門指南假定了一些編程知識(例如,什么是類,什么是函數(shù)或方法等)。如果你熟悉PHP,Hack有著相似的外觀和感覺。如果你不熟悉PHP,那么所有這一切都是新的,但希望你的一般結(jié)構(gòu)是熟悉的。意見提供各種細節(jié),但這里是要點:
Box
class是通用的。如果您使用的是Nuclide等編輯器,則在編寫程序時會看到類型檢查信息。如果從命令行運行typechecker命令只是
%hh_client
你應該看到:
No errors!
現(xiàn)在想象如果我們將返回類型get_int()
改為bool
而不是int
。如果你運行typechecker,你會看到這樣的:
first.php:15:10,11: Invalid return type (Typing[4110])
first.php:14:21,24: This is a bool
first.php:15:10,11: It is incompatible with an int
這表明了Hack類型系統(tǒng)和類型檢查器的強大功能:它可以讓您知道您可能不會返回您的想法。類型檢查器對所有的代碼進行這些檢查,而不必運行它們。
在您得到您的Hack程序以類型檢查清除沒有錯誤后,您可以在HHVM中運行該程序。
%hhvm first.php
這里是輸出:
INT(42)
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: