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