go变量、类的概念以及类的使用方式,嵌套结构体
go变量、类的概念以及类的使用方式,嵌套结构体
Go变量
- go使用var声明变量,当声明变量时,这个变量对应的值总是会被初始化。这个值要么用指定的值初始化,要么用零值(即变 量类型的默认值)做初始化。对数值类型来说,零值是 0 ;对字符串来说,零值是空字符串;对 布尔类型,零值是 false。
package main
import "fmt"
func main() {
var age int
fmt.Println(age)
var name string
fmt.Println(name)
var status bool
fmt.Println(status)
}
- 还有一种简洁声明变量并赋值的方式。
first_name := "zhang"
fmt.Println(first_name)
Go类的声明及使用
- go中类的使用方式是用户自定义的结构体,使用struct关键字创建结构体。
type User struct {
name string
age int
sex bool
}
- go类的使用赋值方式有两种,分别如下:
package main
import "fmt"
type User struct {
name string
age int
sex bool
}
func main() {
// 第一种复制方式,键值对复制
user := User{
name: "张三",
age: 12,
sex: true,
}
fmt.Println(user)
// 第二种复制方式,按照顺序复制
user_1 := User{"张三",12,true}
fmt.Println(user_1)
}
Go类的嵌套结构体
- 类的嵌套结构体,结构体注入,即在一个结构体中,声明定义另一个结构体,在一个类中注入另一个类,即可使用注入该结构体的属性
package main
import "fmt"
type User struct {
name string
age int
sex bool
}
type Admin struct {
user User
account string
password string
login_status bool
}
func main() {
user := User{
name: "张三",
age: 12,
sex: true,
}
admin := Admin {
user : user,
account : "admin",
password : "admin",
login_status: false,
}
fmt.Println(admin.user.name)
fmt.Println(admin.user.age)
fmt.Println(admin.user.sex)
fmt.Println(admin.account)
fmt.Println(admin.password)
fmt.Println(admin.login_status)
}
go变量、类的概念以及类的使用方式,嵌套结构体的更多相关文章
- C++类的存储(部分可用与c的结构体)
c++中最重要的就是类,那么给你一个类的对象,你知道它在内存中如何存储的吗?它占内存中多少个字节? 首先确定类的构成: 1,数据成员:可以是内置类型,类类型. 2,函数成员:虚函数,非虚函数 1)数据 ...
- java内部类和异常类的概念
1.内部类的外嵌类的成员变量在内部类中任然有效,内部类中的方法也可以调用外嵌类中的 方法,内部类中不可以声明类的变量和方法,外嵌的类体可以用内部类声明对象,作为外嵌类的成员.内部类仅供他的外嵌类使用. ...
- 全面总结sizeof的用法(定义、语法、指针变量、数组、结构体、类、联合体、位域位段)
一.前言 编译环境是vs2010(32位). <span style="font-size:18px;">#include<iostream> #inclu ...
- Net基础篇_学习笔记_第十一天_面向对象(面向过程与面向对象的区别/类的概念)
1.面向过程-----> 面向对象 面向过程:面向的是完成这件事儿的过程,强调的是完成这件事儿的动作. 把大象塞进冰箱里1.打开冰箱门2.把大象塞进去,亲下大象的屁股3.关闭冰箱门 孙全 瘦小 ...
- C C++ 中结构体与类
先来说说C和C++中结构体的不同 a) C语言中的结构体不能为空,否则会报错 1>d:\myproject\visual studio 2013\projects\myc++\main.c(71 ...
- C结构体、C++结构体、C++类的区别
先来说说C和C++中结构体的不同 a) C语言中的结构体不能为空,否则会报错 1>d:\myproject\visual studio 2013\projects\myc++\main.c(71 ...
- C#中的结构体与类的区别
经常听到有朋友在讨论C#中的结构与类有什么区别.正好这几日闲来无事,自己总结一下,希望大家指点. 1. 首先是语法定义上的区别啦,这个就不用多说了.定义类使用关键字class 定义结构使用关键字str ...
- C#中的结构体与类的区别 (转载)
经常听到有朋友在讨论C#中的结构与类有什么区别.正好这几日闲来无事,自己总结一下,希望大家指点. 1. 首先是语法定义上的区别啦,这个就不用多说了.定义类使用关键字class 定义结构使用关键字str ...
- 介绍C#结构体与类区别
1. 结构体与类定义方式 结构体定义使用struct类定义使用class 结构体: struct testDemo{ int num; void action(){ } } 类: class test ...
随机推荐
- Vue项目搭建常用的配置文件,request.js和vue.config.js
request.js用来请求数据,封装的代码如下: import axios from 'axios' const request = axios.create({ timeout: 5000 }) ...
- 2021.10.12考试总结[NOIP模拟75]
T1 如何优雅的送分 考虑式子的实际意义.\(2^{f_n}\)实际上就是枚举\(n\)质因子的子集.令\(k\)为这个子集中数的乘积,就可以将式子转化为枚举\(k\),计算\(k\)的贡献. 不难得 ...
- Windows平台编译器相关的几个预定义宏
WIN32 是在windows.h 中定义的宏,包含winodws.h则定义该宏 _WIN32/_WIN64跟windows平台有关的宏,_WIN32在windows 32位和64位下都有该宏,_ ...
- CODING —— 云原生时代的研发工具领跑者
本文为 CODING 创始人兼 CEO 张海龙在腾讯云 CIF 工程效能峰会上所做的分享. 文末可前往峰会官网,观看回放并下载 PPT. 大家上午好,很高兴能有机会与大家分享 CODING 最近的一些 ...
- Ubuntu下在当前用户下安装JDK1.8
Oracle官网的JDK下载需要用户登录才能下载,JDK1.8的下载地址:https://www.oracle.com/cn/java/technologies/javase/javase-jdk8- ...
- v3
#include <iostream> #include <time.h> #include "map" #include "stdio.h&qu ...
- cm3 逆向分析
目录 cm3 逆向分析 前言 逆向分析 cm3 逆向分析 前言 这道题没加壳,也没加密算法,主要看代码逻辑. 逆向分析 代码很短,一共这么几句. 看提示知道只让我们输入w.s.a.d这几个字符,并且用 ...
- nohup java -jar xx.jar & ,关闭窗口后退出进程
nohup java -jar dw-report..jar > dw-report.log & 自动退出命令在后台运行 xx.jar程序 明明已经加了"&" ...
- JuiceFS CSI Driver 的最佳实践
文章根据 Juicedata 工程师朱唯唯,在云原生 Meetup 杭州站所作主题演讲<JuiceFS CSI Driver 的最佳实践>整理而成. 大家好,我是来自 Juicedata ...
- 计算机网络漫谈之IP与子网掩码
通过之前的介绍,我们现在已有的概念是任何一台计算机如果需要接入互联网,都会分配到一个IP地址.这个地址分成两个部分,前一部分代表网络,后一部分代表主机.比如,IP地址172.16.254.1,这是一个 ...