結構體引用 Gox語言中的結構型別 GX6

2021-10-14 17:15:11 字數 1111 閱讀 7526

gox語言中,結構型別(struct)其實並不是很常用,因為gox語言本身就是動態型別的語言,一般的類似結構體的資料直接用陣列或者對映型別就可以了,裡面的資料項可以是任意型別,包括巢狀復合型別。因此,gox語言中的結構體struct一般是為了相容go語言中的結構體,以便呼叫go語言中已有的庫函式或者該結構體的成員函式,但也不是完全不能用普通的結構體,請參看下面的示例。

person1 = make(struct )person1.name = "john"person1.age = 20pl("%#v", person1)person2 = person1person2.name ="tom"pv("person1")pv("person2")url = import ("net/url")tk = import("tk")postvalues = make(url.values)postvalues.set("req", "requestinfo")postvalues.set("a", "123")postvalues.set("b", "xyz")pv("postvalues")rs = tk.downloadpageutf8("", postvalues, "", 15)pv("rs")
這段**的執行結果是:

首先,gox語言中沒有直接生命結構體的方法,因為作為動態型別的語言,所有型別都是無法宣告的,但可以用make函式(也可以用new函式)直接建立乙個結構型別,如例子中建立的person1和person2變數,然後就可以用「.」的方法來引用結構體中的成員變數。

可以發現,如果把另乙個變數賦值為以後的結構體變數,實際上只是賦值了引用,因為修改person2的值的時候,發現person1中對應的值也發生了一致的變化。

然後,對於go語言中的結構體,在import相應的包之後,也可以用make函式來建立其中的結構體的例項變數,例如本例中的url.values,就是在go語言標準庫中「net/url」包中定義的結構體,用於在傳送http的post形式網路請求時傳送post的引數資料。

C語言中結構體 自引用 和 相互引用

technorati 標籤 c語言,結構體,自引用,相互引用,self reference,mutual reference 結構體的自引用 self reference 就是在結構體內部,包含指向自身型別結構體的指標。結構體的相互引用 mutual reference 就是說在多個結構體中,都包含...

C語言中結構體 自引用 和 相互引用

結構體的自引用 self reference 就是在結構體內部,包含指向自身型別結構體的指標。結構體的相互引用 mutual reference 就是說在多個結構體中,都包含指向其他結構體的指標。1.1 不使用typedef時 錯誤的方式 1 struct tag 1 這種宣告是錯誤的,因為這種宣告...

C語言中結構體 自引用 和 相互引用

結構體的自引用 self reference 就是在結構體內部,包含指向自身型別結構體的指標。結構體的相互引用 mutual reference 就是說在多個結構體中,都包含指向其他結構體的指標。1.1 不使用typedef時 錯誤的方式 1 struct tag 1 這種宣告是錯誤的,因為這種宣告...