> go run 1.go
zhangsang 25
{lisi 28}
张三 22
package main
import("fmt")
type student  struct{name stringage int
}
func main(){no1:=student{name:"zhangsang",age:25,}no2:=student{}no2.name="lisi"no2.age=28no3:=student{name:"张三"}no3.age=22 no4:=student{"李明",26}fmt.Println(no1.name,no1.age)fmt.Println(no2)fmt.Println(no3.name,no3.age)fmt.Println(no4.name,no4.age)
}

结构在函数参数中仍然是传值

> go run 1.go
lisi 28
lisi 28
package main
import("fmt")
type student  struct{name stringage int
}
func ageUpdate(st student){st.age+=1
}
func main(){no1:=student{}no1.name="lisi"no1.age=28fmt.Println(no1.name,no1.age)ageUpdate(no1)fmt.Println(no1.name,no1.age)    }

需要传地址,如下

> go run 1.go
lisi 28
lisi 29
package main
import("fmt")
type student  struct{name stringage int
}
func ageUpdate(st* student){st.age+=1
}
func main(){no1:=student{}no1.name="lisi"no1.age=28fmt.Println(no1.name,no1.age)ageUpdate(&no1)fmt.Println(no1.name,no1.age)   }

结构构造

package main
import("fmt")
type student  struct{name stringage int
}
func newStudent(name string,age int) *student{return &student{name:name,age:age,}
}
func main(){no1:=new(student)no1.name="lisi"no1.age=28no2:=newStudent("wangwu",28)fmt.Println(no1.name,no1.age)fmt.Println(no2.name,no2.age)}

go语言基础到提高(5)-结构相关推荐

  1. C语言基础知识(三)-程序设计结构、数组、字符串处理函数

    本文是C语言的基础知识,主要讲解三种程序设计结构.数组.字符串和字符数组.数组元素查询以及字符串处理函数. 程序结构设计 包括C语言在内的几乎任何编程语言都支持以下三种程序设计结构,它们分别是: 顺序 ...

  2. c语言record的作用,C语言基础 record 2-指针,结构体,链表,文件的输入输出

    指针: 1.指针的概念: 内存区的每一个字节有一个编号,这就是 '地址',由于通过地址能找到所需的变量单元,而地址指向该变量单元,所以将地址形象化称为 '指针'.C/C++中是可多继承的指针,而Jav ...

  3. 【C语言基础05】循环结构程序设计(含经典代码解析)

    目录 5.1 while语句 5.2 do-while语句 5.3 for语句 5.4 三种循环的比较 5.5 循环的嵌套 5.6 break语句和continue语句 5.7 综合案例 循环结构又称 ...

  4. 【C语言基础】练习:结构体统计学生成绩,快递费用计算

    每日练习一:结构体统计学生成绩 题目要求:有3名学生,每个学生的数据包括学号.姓名.3门课的成绩,从键盘输入3个学生的数据,打印出每个学生的平均成绩,以及最高分学生的数据(包括学号.姓名.3门课的成绩 ...

  5. C语言基础知识之分支结构

    系列文章目录 目录 系列文章目录 前言 一.什么是分支结构 1.if else (1)单分支结构 (2)多分支结构 (3)嵌套分支结构 2.switch 总结 前言 文章作者刚入门,内容理解不成熟,有 ...

  6. go语言基础到提高(3)-变量

    package main import("fmt" ) func main(){var x intx=100var y int =100z:=100.11// z:=102.12 ...

  7. go语言基础到提高(13)-同步

    defer的主要作用就是在当前函数或者方法返回之前调用一些用于收尾的函数,例如关闭文件描述符.关闭数据库连接以及解锁资源. 只需要在被调用的函数前边加上go关键字,就可以轻松的开启并发执行. pack ...

  8. go语言基础到提高(12)-函数类型与函数变量

    ```go```go```go package mainimport ("fmt" )type UpdateList func(lst []int) (done bool)//函数 ...

  9. go语言基础到提高(10)- 包及方法

    src\2.go package mainimport ("test" )func main() {test.Info() } src\test\test.go package t ...

最新文章

  1. python类方法调用装饰_Python3 @classmethod 函数装饰器 声明一个类方法
  2. QT 调用QWebEngineView显示网页
  3. kibana. 登陆
  4. ue4 怎么修改骨骼动画_UE4换装系统(合并骨骼模型)
  5. Unity3d 下websocket的使用
  6. 高德地图时间和实际差多少_独家揭秘:高德地图品牌升级背后的故事
  7. LeetCode: Longest Common Prefix
  8. 作者:景志刚(1977-),男,现就职于中国人民银行征信中心数据部,主要研究方向为数据挖掘。...
  9. Python学习汇总,做数据采集的一些小技巧,收获满满
  10. 吃鸡决赛圈直播却卡屏的我心好痛,立马找来开发刚了一波
  11. 两种语言实现设计模式(C++和Java)(二:单例模式)
  12. HDU2032 杨辉三角【入门】
  13. Eclipse之Android开发环境搭建
  14. ros 开源物体检测_开源机器人动力学仿真软件:V-REP简介
  15. Qt5开发从入门到精通——第一篇概述
  16. AI一分钟 | 小米在香港提交招股书募资100亿美元;寒武纪发布首款云端AI芯片和第三代终端IP...
  17. 墨画子卿第一章第9节:指教
  18. WebView启动支付宝客户端支付失败的解决办法
  19. 17 款程序员神级 Chrome 插件,爱了爱了!
  20. 有趣的算法:捞鱼问题

热门文章

  1. Vue 中的 v-if 和 v-show 修饰符
  2. codefroce385E矩阵快速幂
  3. UVa 10082 - WERTYU 解题报告 - C语言
  4. MapReduce实现Apriori算法
  5. unity3d所要知道的基础知识体系大纲,可以对照着学习,不定期更新
  6. MSSQL Server 导入/导出到远程服务器
  7. 停止FMS3.5的Apache服务
  8. MAC卸载java 12.0.2
  9. EF中的Code First
  10. Python单元测试框架之pytest 3 -- fixtures