Hack編程簡介

來源:互聯網
上載者:User

原文連結:http://www.hacklang.org.cn/



Hack程式設計語言中文官網 <?hh 
echo "Hello, HackLang.org.cn!"; 
?> 

整潔! 安全! 可重構! 相容php! 
Hack是由FaceBook公司推出的一種程式設計語言,用於HHVM中。 簡寫為hh,可以使用hhlang.org.cn來訪問本站。

新手教程 HHVM安裝 1

<?hh
2
class MyClass {
3
  public function alpha(): int {
4
    return 1;
5
  }
6
 7 
  public function beta(): string {
8
    return 'hi test';
9
  }
10
}
11
 12 
function f(MyClass $my_inst): string {
13
  // Fix me!
14
  return $my_inst->alpha();
15
}
什麼是Hack程式設計語言

Hack是一種程式設計語言,用於HHVM中,可與PHP結合,相互無縫操作使用。Hack 實現PHP式的快速開發週期,提供靜態類型,同時增加了許多在其他現代程式設計語言中常見的特性。

Hack通過本機伺服器監控檔案系統來提供瞬時的類型檢查。它通常運行在不到200毫秒,因此很容易整合到您的開發工作流程,而不會引入明顯的延遲。

Hack的目標為開發人員提供了一個方式來寫乾淨,安全和可重構代碼,同時要保持與當前的PHP程式碼程式庫一定程度的相容性。實現這一目標的主要途徑是向開發人員提供一種方式來檢查PHP函數和類的類型資訊,因而提供了類型檢查工具。此外,還提供了特定的語言功能: 類型標註 這個特性將允許php代碼來標註參數,類成員變數和傳回值的類型。(原本的PHP是對參數的類型不敏感的。比如字串型和整形。)

<?hhclass MyClass {  const int MyConst = 0;  private string $x = '';  public function increment(int $x): int {    $y = $x + 1;    return $y;  }}
泛型,PHP(在同樣的靜態類型語言如C語言、Java、C#)。泛型允許類和方法是參數化(即,當一個類被執行個體化或方法調用,進行類型相關聯)。這裡有一個例子:
<?hhclass Box<T> {  protected T $data;  public function __construct(T $data) {    $this->data = $data;  }  public function getData(): T {    return $this->data;  }}
Nullable Types Hack增加了一種更安全的方式通過被稱為“可為空白”型(有時也被稱為“可能”或“選項”)的觀念來處理空值。可為空白值允許空值已指派並檢查其上的任何類型。可為空白值是原始類型通常不允許null作為它們的值,如BOOL和INT,但它也可以是使用者自訂的類。下面是一個例子。注意。操作符用來表示可為空白。 Hack增加了容器類型和介面到PHP。建立在Hack對泛型的支援,Hack 增加了內建的參數化集合,如vectors和maps。集合是專門用於資料存放區和檢索。集合實現許多相同的介面,並擴充到創造更多的專門集合。目前,Hack 可以實現以下具體的集合類型: 拉姆達運算式 offer similar functionality to PHP closures, but they capture variables from the enclosing function body implicitly and are less verbose:
<?hhfunction foo(): (function(string): string) {  $x = 'bar';  return $y ==> $x . $y;}function test(): void {  $fn = foo();  echo $fn('baz'); // barbaz}

Hack語言的更多特性還包括 Shapes, Type Aliasing, Async support, and 更多.

您可以用在您自己的程式碼程式庫上,有很多開源的Hack及其轉化工具 可以使用。 我們將繼續在未來的道路上前行: 期待您的意見反饋,同時也歡迎您參與到HHVM和Hack的大家庭中來。
當然還有許多其它特性,可以到官方上詳閱。

[項目官網]:  http://www.hacklang.org.cn/
[下載地址]:  http://www.hhvm.org.cn/install.php
[協助文檔]:  http://www.hacklang.org.cn/cookbook.php  
[許可協議]: GNU General Public License (GPL)    
QQ群218127186二維碼
社區資源導航 HackLang微博 HHVM IRC Chat Hack程式設計語言範例 HHVM開源資訊 GitHub License Contributing Cookbook on Github Docs on Github

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.