當前位置: 首頁>>代碼示例>>Golang>>正文


Golang Call.Type方法代碼示例

本文整理匯總了Golang中golang.org/x/tools/go/ssa.Call.Type方法的典型用法代碼示例。如果您正苦於以下問題:Golang Call.Type方法的具體用法?Golang Call.Type怎麽用?Golang Call.Type使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在golang.org/x/tools/go/ssa.Call的用法示例。


在下文中一共展示了Call.Type方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: genAppend

// genAppend generates constraints for a call to append.
func (a *analysis) genAppend(instr *ssa.Call, cgn *cgnode) {
    // Consider z = append(x, y).   y is optional.
    // This may allocate a new [1]T array; call its object w.
    // We get the following constraints:
    // 	z = x
    // 	z = &w
    //     *z = *y

    x := instr.Call.Args[0]

    z := instr
    a.copy(a.valueNode(z), a.valueNode(x), 1) // z = x

    if len(instr.Call.Args) == 1 {
        return // no allocation for z = append(x) or _ = append(x).
    }

    // TODO(adonovan): test append([]byte, ...string) []byte.

    y := instr.Call.Args[1]
    tArray := sliceToArray(instr.Call.Args[0].Type())

    var w nodeid
    w = a.nextNode()
    a.addNodes(tArray, "append")
    a.endObject(w, cgn, instr)

    a.copyElems(cgn, tArray.Elem(), z, y)        // *z = *y
    a.addressOf(instr.Type(), a.valueNode(z), w) //  z = &w
}
開發者ID:ChloeTigre,項目名稱:golang-tools,代碼行數:31,代碼來源:gen.go


注:本文中的golang.org/x/tools/go/ssa.Call.Type方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。