博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
结构体/struct
阅读量:6154 次
发布时间:2019-06-21

本文共 1689 字,大约阅读时间需要 5 分钟。

定义别名后的类型和原来的类型不是同样的类型,举例:

package mainimport "fmt"type integer intfunc main() {    var i integer = 1    var j int = 2    //强制转换成int类型才行(虽然integer也是int类型)    j = int(i)    //强制转换成integer类型才行(虽然integer也是int类型)    i = integer(j)    fmt.Println(j)    fmt.Println(i)}

结构体中的tag:

package mainimport (    "fmt"    "encoding/json")type Student struct {    //注意,要大写才行    Name string `json:"name"`    Age int `json:"age"`    Score int `json:"score"`}func main() {    var stu Student = Student{        Name: "stu01",        Age: 18,        Score: 80,    }    fmt.Println(stu)    //打包成json    data, err := json.Marshal(stu)    if err == nil {        fmt.Println(data)        fmt.Println(string(data))    }}

结构体中的tag首字母必须大写!因为json.Marshal()是在另一个包里面。但想要输出的json是小写可以用:json:"name"

结构体的赋值,取值:

package mainimport (    "time"    "fmt")type Cart struct {    name string    age int}type Train struct {    Cart    int    start time.Time}func main() {    var t Train    t.age = 1    t.int = 6    t.Cart.name = "cartName"    t.start = time.Now()    fmt.Println(t)}

结构体的函数(注意引用传递来改变结构体的值):

package mainimport "fmt"type Student struct {    Name string    Age int    Score int}func (p1 Student) init1(name string, age,score int) {    p1.Name = name    p1.Age = age    p1.Score = score}//指针写法func (p2 *Student) init2(name string, age,score int) {    p2.Name = name    p2.Age = age    p2.Score = score}func main() {    var stu1 Student    //如此只是复制,而非引用。    stu1.init1("zhangsan", 18, 100)    fmt.Println(stu1)    var stu2 Student    //按理来说要这样写    (&stu2).init2("zhangsan", 18, 100)    fmt.Println(stu2)    //然而,这样写也是可以的    stu2.init2("zhangsan", 18, 100)    fmt.Println(stu2)}

转载于:https://blog.51cto.com/5660061/2346644

你可能感兴趣的文章
Spring Boot 整合Spring Security 和Swagger2 遇到的问题小结
查看>>
[20170628]12C ORA-54032.txt
查看>>
linux运维人员的成功面试总结案例分享
查看>>
Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配
查看>>
命令查询每个文件文件数
查看>>
《跟阿铭学Linux》第8章 文档的压缩与打包:课后习题与答案
查看>>
RAC表决磁盘管理和维护
查看>>
Apache通过mod_php5支持PHP
查看>>
发布一个TCP 吞吐性能测试小工具
查看>>
java学习:jdbc连接示例
查看>>
PHP执行批量mysql语句
查看>>
Extjs4.1.x 框架搭建 采用Application动态按需加载MVC各模块
查看>>
Silverlight 如何手动打包xap
查看>>
建筑电气暖通给排水协作流程
查看>>
JavaScript面向对象编程深入分析(2)
查看>>
linux 编码转换
查看>>
POJ-2287 Tian Ji -- The Horse Racing 贪心规则在动态规划中的应用 Or 纯贪心
查看>>
Windows8/Silverlight/WPF/WP7/HTML5周学习导读(1月7日-1月14日)
查看>>
关于C#导出 文本文件
查看>>
使用native 查询时,对特殊字符的处理。
查看>>