《零基础Go语言算法实战》【题目 2-11】属性的权限

embedded/2025/1/17 2:02:54/

《零基础Go语言算法实战》

【题目 2-11】属性的权限

下面代码的输出是什么?

type Programmer struct {

 name string `json:"name"`

}

func main() {

 js := `{

 "name":"18"

 }`

 var p Programmer

 err := json.Unmarshal([]byte(js), &p)

 if err != nil {

 fmt.Println("err: ", err)

 return

 }

 fmt.Println("programmer: ", p)

}

【解答】

programmer: {}

按照 Go 语言的语法,首个单词的首字母以小写开头的方法、属性或结构体是私有的,

同样,在 json 解码或转码时也无法上线私有属性的转换。题目中是无法正常得到 Programmer

的 name 值的。而且,私有属性 name 也不应该加 json 的标签。

203501b94a37421cb3a15de592418ac8.png

 


http://www.ppmy.cn/embedded/154529.html

相关文章

JavaEE之线程池

前面我们了解了多个任务可以通过创建多个线程去处理,达到节约时间的效果,但是每一次的线程创建和销毁也是会消耗计算机资源的,那么我们是否可以将线程进阶一下,让消耗计算机的资源尽可能缩小呢?线程池可以达到此效果&a…

RabbitMQ-基本使用

1 概述 RabbitMQ中的几个基本概念: (1)信道(channel):信道是消息的生产者、消费者和服务器之间进行通信的虚拟连接。为什么叫“虚拟连接”呢?因为TCP连接的建立是非常消耗资源的,所以RabbitMQ在TCP连接的基础上构建了虚拟信道。我…

【Linux】从零开始:编写你的第一个Linux进度条小程序

Linux相关知识点可以通过点击以下链接进行学习一起加油!初识指令指令进阶权限管理yum包管理与vim编辑器GCC/G编译器make与Makefile自动化构建GDB调试器与Git版本控制工具 文章目录 一、知识铺垫1.1 回车与换行概念1.2 缓冲区 二、实现简单倒计时三、进度条3.1 Verrs…

【 PID 算法 】PID 算法基础

一、简介 PID即:Proportional(比例)、Integral(积分)、Differential(微分)的缩写。也就是说,PID算法是结合这三种环节在一起的。粘一下百度百科中的东西吧。 顾名思义,…

第十章:电子表格软件Excel

文章目录: 一:界面 1.介绍 2.选项卡 2.1 开始 2.2 插入 2.3 布局 2.4 公式 2.5 数据 2.6 审阅 2.7 视图 2.8 开发工具 2.9 图表工具 二:基础 1.工作簿 2.工作表 3.单元格 4.宏 三:数据 1.数据类型 2.自动填充…

理解Spark中运行程序时数据被分区的过程

在Spark中,数据分区是指将数据集分割成多个小的子集,即分区,以便在集群的多个节点上并行处理,从而提高处理效率。以下通过一个具体例子来理解: 例子背景 假设要分析一个包含100万条销售记录的数据集,每条…

linux 端口转发工具rinetd

rinetd是一个轻量级TCP转发工具,简单配置就可以实现端口映射/转发/重定向。 (1) 源码下载 wget https://li.nux.ro/download/nux/misc/el7/x86_64/rinetd-0.62-9.el7.nux.x86_64.rpm(2) 安装rinetd rpm -ivh rinetd-0.62-9.el7.nux.x86_64.rpm (3) 编辑配置文件 …

正则表达式完全指南

# 正则表达式完全指南 正则表达式(Regular Expression,简称 regex 或 regexp)是一种强大的文本匹配和处理工具。它使用特定的语法规则来描述字符串的匹配模式,广泛应用于文本搜索、替换和数据验证等场景。 ## 1. 基础语法 ### 1.1…