两个结构体变量可以直接赋值吗_Gox语言中的结构类型-GX6

580227bc4dceab6e70c9378ddc1d81ea.png

Gox语言中,结构类型(struct)其实并不是很常用,因为Gox语言本身就是动态类型的语言,一般的类似结构体的数据直接用数组或者映射类型就可以了,里面的数据项可以是任意类型,包括嵌套复合类型。因此,Gox语言中的结构体struct一般是为了兼容Go语言中的结构体,以便调用Go语言中已有的库函数或者该结构体的成员函数,但也不是完全不能用普通的结构体,请参看下面的示例。

person1 = make(struct {Name string,Age int})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("http://topxeq.iego.cn/japi", postValues, "", 15)pv("rs")

这段代码的运行结果是:

e5769329b38c40084d74f3dc0d09843f.png

首先,Gox语言中没有直接生命结构体的方法,因为作为动态类型的语言,所有类型都是无法声明的,但可以用make函数(也可以用new函数)直接创建一个结构类型,如例子中创建的person1和person2变量,然后就可以用“.”的方法来引用结构体中的成员变量。

可以发现,如果把另一个变量赋值为以后的结构体变量,实际上只是赋值了引用,因为修改person2的值的时候,发现person1中对应的值也发生了一致的变化。

然后,对于Go语言中的结构体,在import相应的包之后,也可以用make函数来创建其中的结构体的实例变量,例如本例中的url.Values,就是在Go语言标准库中“net/url”包中定义的结构体,用于在发送HTTP的POST形式网络请求时传送POST的参数数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值