天天看點

V語言10共享對象

共享對象

通過<code>共享對象</code>在<code>協程/線程</code>間交換資料.應按<code>共享</code>建立并傳遞給<code>協程</code>.<code>構</code>底層包含一個<code>鎖</code>來鎖住并發通路,<code>rlock</code>針對<code>隻讀</code>,而<code>lock</code>針對<code>讀寫</code>.

共享變量必須為<code>構,數組,映射</code>.

<code>V</code>内置支援<code>數格</code>.<code>json.decode</code>帶兩個參數:<code>1為類型,2為串</code>.

<code>V</code>生成<code>加解密</code>數格代碼,無運作時反射,性能更好.

測試

<code>assert</code>檢查表達式為<code>真</code>.失敗則中止程式.應僅用來檢測程式設計錯誤,錯誤時列印出比較兩端值.

<code>v 你好_test.v</code>指令.<code>v</code>在檔案中執行所有測試函數.

<code>序号</code>

注意

<code>1</code>

必須以<code>_test.v</code>結尾,

<code>2</code>

測試函數以<code>test_</code>開始,

<code>3</code>

普通函數也可在測試中,但要手動調用,

<code>4</code>

有兩類測試:<code>外部/内部</code>.

<code>5</code>

内部測試必須聲明子產品名,可調用相同子產品私函數

<code>6</code>

外部測試必須導入<code>待測試</code>子產品,僅能測試子產品的<code>外部/公開</code>函數.

上面為<code>内部測試</code>,内部測試可用來測試<code>私有</code>函數

測試函數中特殊函數:<code>testsuite_begin/end</code>在其他測試函數<code>前後</code>運作.

一個錯誤,就傳播了.運作單個測試檔案:<code>v foo_test.v</code>.

測試整個子產品,<code>v test mymodule/v test .</code>.<code>-stats</code>擷取測試細節.你可在測試目錄中放<code>testdata</code>檔案夾.特殊處理,都可這樣.

<code>V編譯器路徑</code>可由<code>@VEXE</code>得到.

管理記憶體

<code>V</code>第一時間用<code>值類型/串緩沖</code>來避免<code>不必要配置設定</code>.大多數代碼<code>&gt;90%</code>用<code>自動釋放</code>引擎釋放.編譯期插入釋放代碼,剩餘小部分用<code>引用計數</code>釋放.

<code>開發者</code>不必改代碼,就<code>管用</code>了.沒有<code>厚重</code>的<code>垃圾跟蹤</code>或<code>昂貴</code>的<code>引用計數</code>.

你可利用<code>V</code>的自動釋放引擎,并對自己的類型定義<code>釋放</code>.

可用<code>-manualfree</code>開關來手動管理記憶體,用于低級控制.函數上加<code>[manualfree]</code>也可以.目前預設為<code>-autofree</code>開關.不<code>自動釋放</code>,會<code>洩露記憶體</code>.

<code>串</code>不轉義<code>draw_text</code>,是以退出函數,就清理了.

用<code>-prealloc</code>标志,前2個根本不配置設定.是小串,是以給他們用<code>預配置設定緩沖</code>.

ORM

<code>α狀态</code>,支援<code>SQLite, MySQL和Postgres</code>,将支援<code>MS SQL和Oracle</code>

好處

統一文法

統一查詢

安全

編譯時檢查

<code>可讀性/簡單性</code>