當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


erlang string_to_handle(QueryString)用法及代碼示例


string_to_handle(QueryString) -> QH | Error
string_to_handle(QueryString, Options) -> QH | Error
string_to_handle(QueryString, Options, Bindings) -> QH | Error
類型:
QueryString = string()
Options = [Option] | Option
Option = 
    {max_lookup, MaxLookup} |
    {cache, cache()} |
    cache |
    {join, Join} |
    {lookup, Lookup} |
    {unique, boolean()} |
    unique
MaxLookup = integer() >= 0 | infinity
Join = any | lookup | merge | nested_loop
Lookup = boolean() | any
Bindings = erl_eval:binding_struct()
QH = query_handle()
Error = {error, module(), Reason}
Reason = erl_parse:error_info() | erl_scan:error_info()

字符串版本q/1,2。當計算查詢句柄時,由解析轉換創建的樂趣被解釋為erl_eval(3)。查詢字符串是一個以句點結尾的單個 QLC。

例子:

1> L = [1,2,3],
Bs = erl_eval:add_binding('L', L, erl_eval:new_bindings()),
QH = qlc:string_to_handle("[X+1 || X <- L].", [], Bs),
qlc:eval(QH).
[2,3,4]

string_to_handle(QueryString) 相當於 string_to_handle(QueryString, [])

string_to_handle(QueryString, Options)相當於string_to_handle(QueryString, Options, erl_eval:new_bindings()).

當從 Erlang 外部調用時,該函數可能主要有用,例如從用 C 編寫的驅動程序。

注意

以這種方式創建的查詢句柄可能比直接通過創建查詢句柄的性能更差q/1,2.

相關用法


注:本文由純淨天空篩選整理自erlang.org大神的英文原創作品 string_to_handle(QueryString) -> QH | Error。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。