golang用any类型去接收前端传的数字类型的值,类型断言为float64
在 Go 中,使用 any 类型接收前端传来的数字时,通常会发现其被类型断言为 float64。这是因为在 JSON 解码的过程中,Go 的 encoding/json 包会将数字解析为 float64。但如果你在结构体中指明字段为 int 类型,框架会根据字段类型进行适当的解析。
- 使用 any 类型接收数字
当你使用 any 类型接收 JSON 数据时:
JSON 解析:Go 的 encoding/json 包将所有数字统一解析为 float64,这是为了兼容整数和浮点数。因为 JSON 中的数字没有类型限制,Go 选择 float64 来最大程度保留数值的范围和精度。
类型断言:因此,当你尝试将接收到的 any 类型的值进行类型断言时,通常会得到 float64。
var data map[string]any
err := json.Unmarshal([]byte(`{"value": 42}`), &data)
if value, ok := data["value"].(float64); ok {fmt.Println(value) // 输出: 42
}
- 指明 int 类型解析为 int
当你在结构体中定义字段为 int 类型时:
字段类型:Go 的 JSON 解码器会根据字段的类型信息进行解析。如果字段是 int,那么解析器会尝试将 JSON 中的数字直接转换为 int 类型。
自动转换:从 JSON 中接收到的整数会被正确地解析为 int,而不会被转换为 float64。
示例
type QueryParams struct {Page int `json:"page" binding:"required"`Limit int `json:"limit" binding:"required"`
}var params QueryParams
err := json.Unmarshal([]byte(`{"page": 2, "limit": 10}`), ¶ms)
// 此时 params.Page 和 params.Limit 都会是 int 类型
总结
使用 any 类型:接收到的数字会被解析为 float64,因为 JSON 数字没有类型限制,而 Go 选择 float64 以兼容各种数字类型。
指明具体类型:如果字段类型被明确为 int,Go 的 JSON 解码器会将 JSON 中的数字直接解析为 int,无需进行类型断言。
这种机制使得 Go 在处理 JSON 数据时更具灵活性,同时也能保持类型的准确性
Go 的 any 类型:
any 是 Go 1.18 引入的一个新类型,实际上是 interface{} 的别名。它可以持有任何类型的值。当 JSON 解码时,数字会被解析为 float64 类型并存储在 any 中。
相关文章:
golang用any类型去接收前端传的数字类型的值,类型断言为float64
在 Go 中,使用 any 类型接收前端传来的数字时,通常会发现其被类型断言为 float64。这是因为在 JSON 解码的过程中,Go 的 encoding/json 包会将数字解析为 float64。但如果你在结构体中指明字段为 int 类型,框架会根据字段类型进行…...
5、Spring Boot 3.x 集成 RabbitMQ
一、前言 本篇主要是围绕着 Spring Boot 3.x 与 RabbitMQ 的集成,这边文章比较简单,RabbitMQ 的集成没有太大的变化,这篇文章主要是为了后续的 RabbitMQ 的动态配置做铺垫。 1、Docker 安装 RabbitMQ 2、Spring Boot 3.x 集成 RabbitMQ二、D…...

ENSP搭建基础网络拓扑图
一、ENSP的基本操作 1、配置网关 进入系统视图与退出 <Huawei>system-view [Huawei]quit 进入G0/0/0接口后配置ip [R1]interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0]ip address 192.168.1.1 24查询所有接口的ip配置 [R1]display ip interface brief…...
尚硅谷rabbitmq 2024 消息可靠性答疑二 第22节
returnedMessage()只有失败才调用,confirm()成功失败了都会调用,为什么? 在RabbitMQ中,消息的确认和返回机制是为了确保消息的可靠传递和处理。confirm和returnedMessage方法的调用时机和目的不同,因此它们的行为也有…...
在 Ubuntu 上安装 Whisper 支撑环境(ffmpeg、PyTorch)的教程(2024亲测可用)
在 Ubuntu 上安装 Whisper 的教程 以下是如何在 Ubuntu 系统上安装 Whisper 以进行视频转录的详细步骤。 步骤 1:更新系统 首先更新你的 Ubuntu 系统,确保安装最新的软件包: sudo apt update && sudo apt upgrade -y步骤 2&#…...

vue+echarts实现雷达图及刻度标注
文章目录 前言代码实现实现效果总结 前言 最近项目有做数据可视化 大屏 不免再次使用些echarts应用 记录下其中echarts雷达图的实现 代码实现 先上代码 <template><div class"container"><div ref"chart" style"width: 500px; heig…...

【进阶OpenCV】 (9)--摄像头操作--->答题卡识别改分项目
文章目录 项目:答题卡识别改分1. 图片预处理2. 描绘轮廓3. 轮廓近似4. 透视变换5. 阈值处理6. 找每一个圆圈轮廓7. 将每一个圆圈轮廓排序8. 找寻所填答案,比对正确答案8.1 思路8.2 图解8.3 代码体现 9. 计算正确率 总结 项目:答题卡识别改分 …...

实时从TDengine数据库采集数据到Kafka Topic
实时从TDengine数据库采集数据到Kafka Topic 一、认识TDengine二、TDengine Kafka Connector三、什么是 Kafka Connect?四、前置条件五、安装 TDengine Connector 插件六、启动 Kafka七、验证 kafka Connect 是否启动成功八、TDengine Source Connector 的使用九、添…...
Linux -- 初识动静态库
目录 为什么要有库? 静态库 什么是静态库? 特点 优点 缺点 动态库 什么是动态库? 优点 缺点 编译器会选择哪个库? 为什么要有库? 库的存在是为了提高软件开发的效率、促进代码复用以及简化维护工作。通过使用…...
vite 打包前请求接口和打包后的不一致
在使用 Vite 进行项目打包时,如果发现打包前请求接口和打包后的行为不一致,这可能是由于多种原因导致的。以下是一些可能的原因和相应的解决方案: 1. 代理配置问题 开发环境:在开发环境中,Vite 通常使用 vite.config…...
fairseq 安装包python
背景: Collecting fairseq Using cached https://pypi.tuna.tsinghua.edu.cn/packages/d7/0f/b7043b451a97eb9b4cfb1b1e23e567b947d9d7bca542403228bd53b435fe/fairseq-0.12.1.tar.gz (9.6 MB) Installing build dependencies ... done Getting requirements…...

使用Mockaroo生成测试数据
使用Mockaroo生成测试数据 最近在学习【Spring Boot & React】Spring Boot和React教程视频的P51.Generating 1000 students一课中,看到了https://www.mockaroo.com/网站可以用来模拟生成测试数据,觉得还不错,特此记录一下。感觉每次看老…...

使用频率最高的 opencv 基础绘图操作 - python 实现
以下是 opencv-python 基本操作绘制示例,绘制: 1)圆,2)矩形,3)线段,4)文本。 安装 opencv-python pip install opencv-python 在图上绘制圆的操作,示例如…...

Python 在Excel中添加数据条
在Excel中添加数据条是一种数据可视化技巧,它通过条形图的形式在单元格内直观展示数值的大小,尤其适合比较同一列或行中各个单元格的数值。这种表示方式可以让大量的数字信息一目了然。本文将介绍如何使用Python在Excel中的指定单元格区域添加数据条。 …...

Unity中搜索不到XR Interaction Toolkit包解决方法
问题: 针对Unity版本2020.3在中PackageManager可能搜素不到XR Interaction Toolkit包 在Package Manager中未显示XR Interaction Toolkit包 解决方法: Package manager左上角,点加号,选择 Add package from git URL..,…...
【前端】JQ验证每个单选按钮是否已经选择
验证每个单选题是否都已经选择,其中每个input中不带name值,直接遍历input[type"radio"]验证 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewpor…...

【无人机设计与控制】滑模控制、反步控制、传统PID四旋翼无人机轨迹跟踪控制仿真
摘要 本文基于滑模控制、反步控制和传统PID控制,设计了针对四旋翼无人机的轨迹跟踪控制系统。通过对比这三种控制策略在四旋翼无人机轨迹跟踪中的表现,分析了各自的优缺点和适用场景。仿真结果表明,滑模控制具有更强的鲁棒性,反步…...
MongoDB 介绍
一、MongoDB 介绍 MongoDB 是一个开源的、面向文档的数据库管理系统。它采用了灵活的数据模型,以类似 JSON 的文档形式存储数据,具有高可扩展性、高性能和丰富的功能。 主要特点包括: 灵活的数据模型:文档型数据库允许存储不同…...
计算机网络:物理层 —— 物理层概述
文章目录 物理层功能物理层接口特性常见特性 相关概念 物理层(Physical Layer)是OSI(Open Systems Interconnection)模型的第一层,负责提供原始比特流传输的服务。它定义了硬件接口的电气、机械、功能和过程特性&#…...

HTTP的工作原理
HTTP(Hypertext Transfer Protocol)是一种用于在计算机网络上传输超文本数据的应用层协议。它是构成万维网的基础之一,被广泛用于万维网上的数据通信。(超文本(Hypertext)是用超链接的方法,将各种不同空间的文字信息组…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...

JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...